
 
 | 
| 技术资料  > PHP技术 > 入门教程 : 我学php从自动摇奖系统开始… |  
我学php从自动摇奖系统开始… March 25,2004 |  
巧合,这种东西我可没写过,而且我也是刚学php,好多语法都不是简单的。有些功能用函数能实现的我却非要自己写一个函数来用………真丢人,不过给新手一个学习过程的提示吧。  
自动摇奖系统:24小时内不能重复IP,先从这里开始。  
$ip=getenv("remote_addr");///取IP值存入$ip,当然,ip的格式是2.2.2.2啊。但是要把ip记录下来……一个文件里就要有几万行了。麻烦。我把ip的最后一位取下来,做文件名来用。这样就有255个文件了,每个文件里只存前三个类。  
方法:$ipip=explode(".",$ip);把ip以.分段存入$ipip这个数组中。  
这样,IP头就等于:$Head = $ipip[0].".".$ipip[1].".".$ipip[2];  
打开文件时就可以用:$File = @fopen($Dir_File.$ipip[3].".txt","r");  
用if ($File)做条件开始,这样可以在没有$Dir_File.$ipip[3].".txt"的时候自己用else来建立一个文件。  
while(!feof($File))////当没有到文件尾时…  
.........  
$OldIP=explode("|",fgets($File,255));取出当前行来,因为txt里的格式是要用时间+IP来保存的,所以,中间用|来分格,这样,$OldIP就存了两个值。IP时间和IP C类。  
 
$OldIP[0]用来做时间和现在的date("U")来比较过24小时的秒数86400了,就删掉当前行。没有的话就接着比较。  
  if (($Head." 
")==$OldIP[1])  
因为每一行最后有一个 
的换行,所以要加上一起比吧。  
 
这里有一个问题,就是删掉当前行上的时间+IP,这个……我是新学啊,不知道有没有函数可以直接做到,反正别人告诉我没有,我就自己写了一个。方法是用读数组的file();来读入数组变量。然后从要删掉的那个位置开始把后面的都向前移动。然后再写回去,注意,最后一个不写,就大功告成了。  
function delete($Line_delete)  
{//delete开始  
global $ipip;///这些在前面都定义了的  
global $ip;///这些在前面都定义了的  
global $Head;///这些在前面都定义了的  
global $Dir_File;///这些在前面都定义了的  
$Filedelete = file($Dir_File.$ipip[3].".txt");  
 
for ($i=$Line_delete;$i<count($Filedelete)-1;$i++)  
{  
$Filedate[$i]=$Filedate[$i+1];  
}  
$File_reputs=fopen($Dir_File.$ipip[3].".txt","w");  
$reback_goto=count($Filedelete);  
for ($i=0;$i<$reback_goto;$i++)  
{  
fputs($File_reputs,$Filedelete[$i]);  
}  
fclose($File_reputs);  
}//delete 结束  
 
如果哪位老大知道有直接删行的函数告诉我吧。  
 
请又说回来。这个删除函数带入的值就是当前指针的位置,怎么做呢?  
 
 
delete(ftell($File));  
 
这样就行。  
 
记得要关掉文件哦: fclose($File);  
 
 
$File = @fopen($Dir_File.$ipip[3].".txt","a+");  
if ($File)  
{//222对应的括号  
 if ($qusi)  
 {//111  
 $StartTime=date("U")."|".$Head;  
 fputs($File,"$StartTime 
");  
 }//111  
fclose($File);  
}  
上边的都完事啦。如果全检查了也没发现这位老兄以前来过,那就把他的IP也加进去吧。上面的方法就行了。  
 
 
至此,IP检测部分全都完成。其它部分就是产生一些随机数了,所以很简单。我也不用说了。  
给初学者一个思路,如果有更好的方法,请一定要告诉我。我才学了几天php。哈哈~!!!!addoil!  
 
 
忘记了最重要的事情,这个摇奖摇出来的是oicq号的密码,全部的靓号哦。  
就连:13211313和13211314这样的情侣号都有呢。  
(一生爱你一生一生/一生爱你一生一世)  
想要的话就来吧,送给女朋友一个,她一定很开心。  
 
http://yahoo.6to23.com  
 
[cut]  
 
【本文版权归原作者及奥索网共同拥有。如需转载,请注明原作者及出处】     
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved