背景:
阅读新闻

PHP帐号申请程序

[日期:2006-08-18] 来源:乘风破浪网  作者:MagicBug [字体: ]
PHP帐号申请程序 
magicbug作品. 
先说明呀,这不是脚本,这是我写的第一个php程序,整整五小时,总算好了,用得着的就拿去吧. 
注意$accufile,$acctfile,$server,$from,$subject,$body等几处要自己改成自己的情况,别的外观什么的,你就自己根据需要自己改吧.通过一个form把accountname,accountemail1,accountemail2传到这个php程序就可. 
玩家只要输入帐号名和他的email地址,程序自动判断占用情况,避免空格,emai地址的检验,然后生成六位的随机密码(你改成多少位长都可以,hehe),然后把全部信息发到信箱中去,再把帐号信息写入帐号文件.在其中实现了smtp发送邮件,如果是unix环境,直接用sendmail函数就可以了,但这样适用于各个平台,并且对各个步聚都有比较严格的检测,会有详细的提示信息. 
<? 
//Program by MagicBug;http://magicbug.k666.com;uohomestead;My first PHP program,hehe. 
$htmltop="<HTML>"; 
$htmltop.="<head>"; 
$htmltop.="<title>帐号申请</title>"; 
$htmltop.="<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>"; 
$htmltop.="<link rel='stylesheet' href='../../style.css' type='text/css'>"; 
$htmltop.="</head>"; 
$htmltop.="<body bgcolor='#000000' text='#ff9900' leftmargin='3' topmargin='0' marginwidth='0' marginheight='0'>"; 
$htmltop.="<table width='459' border='0' cellspacing='0' cellpadding='0'>"; 
$htmltop.=" <tr>"; 
$htmltop.=" <td><img src='../../images/logo-2.jpg' width='469' height='61'></td>"; 
$htmltop.="</tr>"; 
$htmltop.=" <tr>"; 
$htmltop.=" <td background='../../images/bian-2.gif' height='18'>"; 
$htmltop.=" <div align='center'><font size='2' color='ff9900'>帐号申请</font></div>"; 
$htmltop.=" </tr>"; 
$htmltop.=" <tr>"; 
$htmltop.=" <td height='8'>"; 
$htmltop.=" </font><font size='2' color='#CCCCCC'><div align='center'>"; 
$htmlbottom= "</div></font>"; 
$htmlbottom.=" </tr>"; 
$htmlbottom.=" <tr>"; 
$htmlbottom.=" <td> "; 
$htmlbottom.=" <div align='center'><font color='#999999' size='2'><font color='#FFCC00'><br>"; 
$htmlbottom.=" 建议使用 800*600、16位色、小字体、IE4.0以上浏览 </font></font><font color='#FFCC00' size='2'><br>"; 
$htmlbottom.=" 如果有建议或意见请发E-mail:<a href='mailto:nyc@fun.21cn.com'>nyc@fun.21cn.com</a> "; 
$htmlbottom.=" <br>"; 
$htmlbottom.=" 主页:<a href='mailto:tianshizhiru@sina.com'>Janny</a> 版权所有:<a href='http://uodarkkingdom.yeah.net'>HomeStead</a><br>"; 
$htmlbottom.=" <br>"; 
$htmlbottom.=" </font></div>"; 
$htmlbottom.=" </td>"; 
$htmlbottom.=" </tr>"; 
$htmlbottom.="</table>"; 
$htmlbottom.="</BODY>"; 
$htmlbottom.="</HTML>"; 
function sendmail($smtpserver,$serverport,$from_address,$to_address,$subject,$message) 

$fp = fsockopen($smtpserver, $serverport, &$errno, &$errstr, 10); 
if(!$fp) { 
echo "错误 : 不能连接到smtp服务器 ".$smtpserver.":".$serverport." 请稍候再试!<p>" ; 
return 0; 

$hostreplay=fgets($fp,128); 
if (!strstr($hostreplay,"220")) { 
echo "错误 : 不能接收到smtp服务器的220回答,请稍候再试!<p>" ; 
fclose($fp) ; 
return 0; 

$smailname=strstr(ltrim($hostreplay),"220 ") ; 
$smailname=substr($smailname,0,strpos($smailname,".")) ; 
fputs($fp,"HELO $smailname \n") ; 
$hostreplay=fgets($fp,128) ; 
if (!strstr($hostreplay,"250")) { 
echo "错误 : 不能接收到smtp服务器的250回答,请稍候再试!<p>" ; 
fclose($fp) ; 
return 0; 

fputs($fp,"MAIL FROM: \n") ; 
$hostreplay=fgets($fp,128) ; 
if (!strstr($hostreplay,"250")) { 
fputs($fp,"MAIL FROM: $from_address\r\n") ; 
$hostreplay=fgets($fp,128) ; 
if (!strstr($hostreplay,"250")) { 
echo "错误 : 不能接收到smtp服务器的250回答,请稍候再试!<p>" ; 
fclose($fp) ; 
return 0; 


fputs($fp,"RCPT TO: $to_address\n") ; 
$hostreplay=fgets($fp,128); 
if (!strstr($hostreplay,"250")) { 
echo "错误 : 不能接收到smtp服务器的334回答,稍候再试!<p>" ; 
fclose($fp) ; 
return 0; 

fputs($fp,"DATA\n") ; 
$hostreplay=fgets($fp,128) ; 
if (!strstr($hostreplay,"354")) { 
echo "错误:不能接收到smtp服务器的250回答,请稍候再试!<p>"; 
fclose($fp) ; 
return 0; 

$tosend="From: $from_address\n"; 
$tosend.="To: $to_address\n"; 
$tosend.="subject: $subject\r\n\r\n"; 
$tosend.="$message\r\n.\r\n"; 
fputs($fp,$tosend) ; 
$hostreplay=fgets($fp,128); 
if (!strstr($hostreplay,"250")) { 
echo "错误:不能接收到smtp服务器的250回答,请稍候再试!<p>" ; 
fclose($fp) ; 
return 0; 

fputs($fp,"QUIT\n") ; 
fclose($fp) ; 
return 1; 

function randpassword(){ 
$mypassword=""; 
srand((double)microtime()*1000000); 
for ($i=1;$i<=6;$i++){ 
$mypassword.=chr(97+(rand(0,25))); 

return $mypassword; 

$accufile="path and filename"; 
$acctfile="path and filename"; 
echo $htmltop."<br>"; 
if (($accountname=="")||($accountemail1=="")||($accountemail2=="")) { 
echo "错误 : 请把资料填写完整!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
exit(); 

if ((strstr($accountname," "))||(strstr($accountemail1," "))||(strstr($accountemail2," "))){ 
echo "错误 : 资料项中不能含有空格!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
exit(); 

if (strcmp($accountemail1,$accountemail2)<>0){ 
echo "错误 : 两个邮箱地址不对应!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
exit(); 

if (!(eregi("^.+@.+\\..+$",$accountemail1))){ 
echo "错误 : 邮件地址不合法!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
exit(); 

$temp=fopen($accufile,"rw"); 
if (!($temp)) { 
echo "错误 : 帐号文件不能打开!<p>"; 
echo "如果出现这个提示信息,请把情况反映给<a href='mailto:nyc@fun.21cn,com'>nyc@fun.21cn.com</a>".",谢谢."; 
echo $htmlbottom; 
exit(); 

while (!feof($temp)){ 
$data=trim(fgets($temp,100)); 
if (strtoupper($data)==strtoupper("[".$accountname."]")) { 
echo "错误 : 此帐号已存在!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
fclose($temp); 
exit(); 

if (strtoupper($data)==strtoupper("EMAIL=".$accountemail1)) { 
echo "错误 : 此Email地址已担保其它帐号!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
fclose($temp); 
exit(); 


fclose($temp); 
$temp=fopen($acctfile,"rw"); 
if (!($temp)) { 
echo "错误 : 帐号文件不能打开!<p>"; 
echo "如果出现这个提示信息,请把情况反映给<a href='mailto:nyc@fun.21cn,com'>nyc@fun.21cn.com</a>".",谢谢."; 
echo $htmlbottom; 
exit(); 

while (!feof($temp)){ 
$data=trim(fgets($temp,100)); 
if (strtoupper($data)==strtoupper("[".$accountname."]")) { 
echo "错误 : 此帐号已存在!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
fclose($temp); 
exit(); 

if (strtoupper($data)==strtoupper("EMAIL=".$accountemail1)) { 
echo "错误 : 此Email地址已担保其它帐号!<p>"; 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
fclose($temp); 
exit(); 


fclose($temp); 
$accountpassword=randpassword(); 
$server="smtp.163.com"; 
$port=25; 
$from="magicbug@163.com"; 
$subject="UO家园站帐号申请回复"; 
$to=$accountemail1; 
$body="Hi, Dear ".$accountname.":\r\n"; 
$body.="感谢你选择了家园站.你申请的帐号已成功,用户名:".$accountname."密码:".$accountpassword.".\r\n"; 
$body.="请牢记你的用户名和密码,妥善保管.帐号会在24小时内由Admin MagicBug为你开通.\r\n"; 
$body.="上线后请立即使用命令: .password 新密码,用来设上你自己的密码.因为初始密码是随机的,比较难记.\r\n"; 
$body.="关于站的建设及一些设定情况请访问家园站的主页:http://magicbug.k666.com.\r\n"; 
$body.="如果有什么问题或建议请去论坛问题区提交.\r\n"; 
$body.="我的信箱为nyc@fun.21cn.com.\r\n"; 
$body.="\r\nAdmin MagicBug\r\n"; 
$body.="\r\n\r\n\r\n此信为自动回信,请不要回复,谢谢.\r\n"; 
if (!(sendmail($server,$port,$from,$to,$subject,$body))){ 
echo "<a href='account1.htm'>返回重填</a>"; 
echo $htmlbottom; 
exit(); 

$temp=fopen($acctfile,"a+"); 
$accountinfo="[".$accountname."]\r\n"."PASSWORD=".$accountpassword."\r\n"."EMAIL=".$accountemail1."\r\n\r\n"; 
fputs($temp,$accountinfo); 
fclose($temp); 
echo "申请成功!有关信息已发送到你的信箱:".$accountemail1.",请注意查收!<p>"; 
echo "<a href='java script:window.close()'>关闭此窗口</a>"; 
echo $htmlbottom; 
exit(); 
?> 
收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻