qmail注册程序

类别:网站制作 点击:0 评论:0 推荐:

  <?
#Igenus RegNewUser By SunGod
#Email:[email protected]
#2003.11.16
include "config/config_inc.php";
$Cmd  = $HTTP_GET_VARS['Cmd'];
$vpopmailbindir = "/home/vpopmail/bin/"; #设定vpopmail的bin目录
if ($Cmd == "reg")
{
 $mailname = $HTTP_POST_VARS['mailname'];
 $domain  = $HTTP_POST_VARS['domain'];
 $passwd1 = $HTTP_POST_VARS['passwd1'];
 $passwd2 = $HTTP_POST_VARS['passwd2'];
 $username = $HTTP_POST_VARS['username'];
 $usersex = $HTTP_POST_VARS['usersex'];
 $year   = $HTTP_POST_VARS['year'];
 $month  = $HTTP_POST_VARS['month'];
 $day   = $HTTP_POST_VARS['day'];
 $phonenum  = $HTTP_POST_VARS['phonenum'];
 $useraddr  = $HTTP_POST_VARS['useraddr'];
 $passquess  = $HTTP_POST_VARS['passquess'];
 $passanswer = $HTTP_POST_VARS['passanswer'];
 $checkbox  = $HTTP_POST_VARS['checkbox'];
 $userage = $year.$month.$day;
#_____________________________________________________输出头文件
 echo "
<HTML>
<HEAD>
<TITLE>提示</TITLE>
<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=gb2312\">
<LINK REL=\"stylesheet\" HREF=\"css/igenus.css\" TYPE=\"TEXT/CSS\">
</HEAD>
<BODY BGCOLOR=\"#5A8C52\" TEXT=\"#000000\" LEFTMARGIN=\"4\" TOPMARGIN=\"4\" MARGINWIDTH=\"2\" MARGINHEIGHT=\"2\">
</br></br>";
#______________________________________________________
 if ($checkbox != "ok")  #检查是否选中协议
 {
   echo "
<center>请返回阅览邮箱使用许可协议,需同意该协议后方可注册</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
exit;
  }
 if (!ereg("^[0-9a-z]+[0-9a-z]$",$mailname)) #检查账号内是否有非法字符
 {
  echo "
<center>账号不能含有非法字符及大写字母 ,请返回重新填写。</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
  exit;
 }
#________________________________________________________________________________

 if (strlen($mailname) < 3) #检查账号长度是否小于3位
 {
  echo "
<center>请不要妄想通过修改提交表单来危害本系统,你的ip已经被记录!</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
  exit;
 }
 $mailname = strtolower($mailname); #将未能过滤的大写字母转换为小写
#________________________________________________检查账号是否存在 
 $sql = mysql_connect($CFG_MYSQL_HOST, $CFG_MYSQL_USER, $CFG_MYSQL_PASS);
 mysql_select_db($CFG_MYSQL_DB,$sql);
 $query = "select pw_id from vpopmail where pw_domain = '$domain' and pw_name = '$mailname'";
 $result = @mysql_query($query,$sql);
 $data = mysql_fetch_array($result);
 if ($data)
 {
   mysql_close($sql); #关闭数据库
   echo "
<center>该帐号已经被使用,请返回选择其他账号并使用检测按钮进行有效性查询。</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
  exit;
 }
#________________________________________________________________________________开始注册过程

 $mailaddr = $mailname."@".$domain; #生成完整的邮件地址
 $query = "select domainsize from userinfo where mstat = '$domain'"; #从该域管理用户处取出默认邮箱空间大小 
 $result = @mysql_query($query,$sql);
 $data = mysql_fetch_array($result);
 $size = $data['domainsize']; #取得空间大小
 $execlineA = $vpopmailbindir."vadduser ".$mailaddr." ".$passwd1; #添加账号的shell语句
 $execlineB = $vpopmailbindir."vsetuserquota ".$mailaddr." ".$size; #更改邮件空间的shell语句
 $outshowA = system($execlineA); #执行两条语句来设置用户,并返回信息
 $outshowB = system($execlineB);
 if ($outshowA != "" or $outshowB != "") #有输出则说明语句执行有问题
 {
   mysql_close($sql);
   echo "
<center>在创建账号的过程中出现不可预料的错误,请稍后再注册......</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
  $message = "执行的语句为:".$execlineA."和".$execlineB."返回的结果为:".$outshowA."和".$outshowB;
  mail("[email protected]","注册错误!",$message); #给管理员信箱返回注册错误情况
  exit;
 }
#_______________________________________________若无错误产生,开始进一步验证和写入数据
 $query = "select pw_id from vpopmail where pw_domain = '$domain' and pw_name = '$mailname'"; #从库中取刚注册的用户资料,看是否注册成功 
 $result = @mysql_query($query,$sql);
 $data = mysql_fetch_array($result);
 if (!$data)
 {
   mysql_close($sql); #关闭数据库
   echo "
<center>在创建账号的过程中出现不可预料的错误,请稍后再注册......</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
  exit;
 }
#_________________________________________________若用户库资料无问题,开始写入用户资料
 $userID = $data['pw_id']; #从用户库取得的编号,使用这个编号为索引在资料库写入用户资料
 $time = getdate();
 if (strlen($time[seconds]) <2){$time[seconds] = "0".$time[seconds];}
 if (strlen($time[minutes]) <2){$time[minutes] = "0".$time[minutes];}
 if (strlen($time[hours]) <2){$time[hours] = "0".$time[hours];}
 if (strlen($time[mon]) <2){$time[mon] = "0".$time[mon];}
 if (strlen($time[mday]) <2){$time[mday] = "0".$time[mday];}
#生成当前时间,精确到秒
 $gettime = $time[year].$time[mon].$time[mday].$time[hours].$time[minutes].$time[seconds];
 $query = "INSERT INTO userinfo (id,mstat,lostanswer,lostquession,username,userage,userphonenum,usersex,useraddr,createtime,domainsize)VALUES('$userID','3','$passanswer','$passquess','$username','$userage','$phonenum','$usersex','$useraddr','$gettime','$size')";
 $result = @mysql_query($query,$sql);
   mysql_close($sql); #关闭数据库
 if ($result)
 {
  echo "
<center>你所申请的电子信箱 ".$mailaddr." 已经创建完毕,感谢你使用本邮件系统。</center>
</BR>
<center><input type=\"BUTTON\" value=\"关闭\" class=\"myinput2\" onClick=\"window.close()\" name=\"BUTTON\"></center>
</HTML>";
  exit;
 }else
 {
  echo "
<center>在创建账号的过程中出现不可预料的错误,请稍后再注册.......</center>
</BR>
<center><input type=\"BUTTON\" value=\"返回\" class=\"myinput2\" onClick=\"history.back()\" name=\"BUTTON\"></center>
</HTML>";
  exit;
 }

}
?>

<HTML>
<HEAD>
<TITLE>新用户注册</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<LINK REL="stylesheet" HREF="css/igenus.css" TYPE="TEXT/CSS">
<SCRIPT LANGUAGE="JavaScript">
function checkDate(dateStr) {
    var year = dateStr.substring(0, 4);
    var month = dateStr.substring(4, 6);
    var day  = dateStr.substring(6, 8);

    if(year < 1900 || year > 2050) {
      return(false);
    }

    if(month < 1 || month > 12) {
      return(false);
    }

    if(day < 1 || day > 31) {
      return(false);
    }

    return(true);
  }


  function chkValidStr(str) {
    var validStrCnt;
    var i;

    for(i = 0, validStrCnt = 0; i < str.length; i++) {
      if(str.substring(i, i+1) != ' ') {
        ++validStrCnt;
      }
    }

    if(validStrCnt == 0)
      return(false);

    return(true);
  }


  function regUserInfoData() {
    if(chkValidStr(document.form1.mailname.value) == false) {
      alert('没有输入用户名。');
      document.form1.mailname.focus();
    }
    else if(document.form1.mailname.value.length < 3) {
      alert('用户名必须是英文字母和数字组合,至少3个字符。');
      document.form1.mailname.focus();
    }
    else if(chkValidStr(document.form1.passwd1.value) == false || document.form1.passwd1.value.length < 5) {
      alert('没有输入新密码或密码少于5位。');
      document.form1.passwd1.focus();
    }
    else if(document.form1.passwd2.value == '' || document.form1.passwd2.value.length < 5) {
      alert('没有输入确认密码或密码少于5位。');
      document.form1.passwd2.focus();
    }
    else if(chkValidStr(document.form1.username.value) == false) {
      alert('没有输入姓名。');
      document.form1.username.focus();
      alert(document.form1.usersex.value);
    }
    else if(chkValidStr(document.form1.useraddr.value) == false) {
      alert('没有输入联系地址');
      document.form1.useraddr.focus();
    }
    else if(chkValidStr(document.form1.phonenum.value) == false) {
      alert('没有输入联系电话');
      document.form1.phonenum.focus();
    }
    else if(chkValidStr(document.form1.passquess.value) == false || document.form1.passquess.value.length < 5) {
      alert('没有输入密码保护问题或少于5位');
      document.form1.passquess.focus();
    }   
    else if(chkValidStr(document.form1.passanswer.value) == false || document.form1.passanswer.value.length < 5) {
      alert('没有输入密码保护答案或少于5位');
      document.form1.passanswer.focus();
    }     
    else {
      if(document.form1.passwd1.value != document.form1.passwd2.value) {
        alert('新密码及确认密码不匹配。');
        document.form1.passwd1.focus();
      }
      else {
        if(document.form1.year.value.length == 2) {
          document.form1.year.value = 1900 + parseInt(document.form1.year.value);
        }

        if(document.form1.month.value.length == 1) {
          document.form1.month.value = '0'+document.form1.month.value;
        }

        if(document.form1.day.value.length == 1) {
          document.form1.day.value = '0'+document.form1.day.value;
        }

        getdate = document.form1.year.value+document.form1.month.value+document.form1.day.value;
        if(getdate == '' || checkDate(getdate) == true) {
          document.form1.submit();
        }
        else {
          document.form1.year.focus();
          alert("错误的生日");
        }
      }
    }
  }



function chkDupUserId(userId, mailDomainName) {
    if(userId == '') {
      alert('没有输入用户名。');
      document.form1.mailname.focus();
    }
    if(userId.length < 3) {
      alert('用户名必须是英文字母和数字组合,至少3个字符。');
      document.form1.mailname.focus();
      }
    else {
      var mywin = window.open('check.php?name='+userId+'&domain='+mailDomainName, "helpWin", "RESIZABLE=no,SCROLLBARS=yes,WIDTH=280,HEIGHT=200");
      mywin.window.focus();
    }
  }
  </SCRIPT>
</HEAD>
<BODY BGCOLOR="#5A8C52" TEXT="#000000" LEFTMARGIN="4" TOPMARGIN="4" MARGINWIDTH="2" MARGINHEIGHT="2">
<CENTER>
 <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
  <TR>
   <TD><B></B></TD>
   <TD ALIGN="RIGHT"> <B> </B>
    <INPUT TYPE="BUTTON" VALUE="关闭" CLASS="myinput2" onClick="window.close()">
   </TD>
  </TR>
 </TABLE>
 <BR>
</CENTER>
<FORM NAME="form1" METHOD="post" ACTION="reg.php?Cmd=reg" onSubmit="return false;">
 <CENTER>
  <p><b><font color="#FFFFFF">注册新用户</font></b></p>
  <TABLE BORDER="1" CELLSPACING="0" CELLPADDING="2" BGCOLOR="#EAF3E9" BORDERCOLOR="#FFFFFF" WIDTH="95%" ALIGN="CENTER">
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="38%"><B>注册邮箱名:</B></TD>
    <TD width="62%">
     <input type="text" name="mailname" size="12" maxlength="20" CLASS="myinput" STYLE='font-family:Tahoma'>
     @
     <select name="domain" CLASS="myinput" STYLE='font-family:Tahoma'>
      <?php
        $sql = mysql_connect($CFG_MYSQL_HOST, $CFG_MYSQL_USER, $CFG_MYSQL_PASS);
                  mysql_select_db($CFG_MYSQL_DB,$sql);
        $query = "SELECT * FROM dir_control";
        $result = @mysql_query($query,$sql);
                  $rows = @mysql_num_rows($result);
        if ($rows <= 1){
         echo "<option value=''>没有域名存在</option>"; }
        else {
         for($i=1;$i<= $rows;$i++){
         $data = mysql_fetch_array($result);
         if ($data['domain'] != "dom_89") {
         echo "<option value=".$data['domain'].">".$data['domain']."</option>
         ";}
         }
        mysql_close($sql);
        } ?>
     </select>
     <input type="button" value="检查账号是否可用" class="myinput2" onClick="JavaScript: chkDupUserId(document.form1.mailname.value, document.form1.domain.value)" name="BUTTON">
    </TD>
   </TR>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="38%"><b>邮箱密码:</b></TD>
    <TD width="62%">
     <input type="password" name="passwd1" size="17" maxlength="16" class="myinput" style='font-family:Tahoma'>
      (5-16个字符)</TD>
   </TR>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="38%"><b>邮箱密码确认:</b></TD>
    <TD width="62%">
     <input type="password" name="passwd2" size="17" maxlength="16" class="myinput" style='font-family:Tahoma'>
    </TD>
   </TR>
  </TABLE>
  <p><BR>
   <B><font color="#FFFFFF">用户资料</font></B></p>
  <p>(请如实填写,以后找回密码将会用到)<BR>
  </p>
  <TABLE BORDER="1" CELLSPACING="0" CELLPADDING="2" BGCOLOR="#EAF3E9" BORDERCOLOR="#FFFFFF" WIDTH="95%" ALIGN="CENTER">
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="37%"><b>姓名:</b></TD>
    <TD width="63%">
     <input type="text" name="username" size="12" maxlength="8" class="myinput" style='font-family:Tahoma'>
      (2-4个字符)</TD>
   </TR>
   <tr bgcolor="#D0E6CE">
    <td align="RIGHT" width="37%"><b>性别:</b></td>
    <td width="63%">
     <input type="radio" name="usersex" value="1" checked>
     男  
     <input type="radio" name="usersex" value="2">
     女</td>
   </tr>
   <tr bgcolor="#D0E6CE">
    <td align="RIGHT" width="37%"><b>出生年月:</b></td>
    <td width="63%">
     <input type="text" name="year" size="4" maxlength="4" class="myinput" style='font-family:Tahoma'>
     -
     <input type="text" name="month" size="2" maxlength="2" class="myinput" style='font-family:Tahoma'>
     -
     <input type="text" name="day" size="2" maxlength="2" class="myinput" style='font-family:Tahoma'>
       例:1977-09-18</td>
   </tr>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="37%"><b>联系地址:</b></TD>
    <TD width="63%">
     <input type="text" name="useraddr" size="30" maxlength="50" class="myinput" style='font-family:Tahoma'>
    </TD>
   </TR>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="37%"><b>联系电话:</b></TD>
    <TD width="63%">
     <input type="text" name="phonenum" size="14" maxlength="14" class="myinput" style='font-family:Tahoma'>
    </TD>
   </TR>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="37%"><b>密码保护问题:</b></TD>
    <TD width="63%">
     <input type="text" name="passquess" size="30" maxlength="50" class="myinput" style='font-family:Tahoma'>
      (5-24个字符)</TD>
   </TR>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="RIGHT" width="37%"><b>密码保护答案:</b></TD>
    <TD width="63%">
     <input type="text" name="passanswer" size="30" maxlength="50" class="myinput" style='font-family:Tahoma'>
      (5-24个字符)</TD>
   </TR>
  </TABLE>
  <BR>
  <BR>
  <B><font color="#FFFFFF">邮箱使用许可协议</font></B><BR>
  <BR>
  <TABLE BORDER="1" CELLSPACING="0" CELLPADDING="2" BGCOLOR="#EAF3E9" BORDERCOLOR="#FFFFFF" WIDTH="95%" ALIGN="CENTER">
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="center">
     <textarea name="textfield4" cols="65" rows="10" wrap="VIRTUAL">          陵江在线个人免费邮箱服务协议

 一、前言:

   陵江在线网站(WWW.LJOL.NET)以下简称陵江在线所提供的各项服务的所有权和运作权归南部电信有限公司。陵江在线提供的服务将完全按照其发布的章程、服务条款和操作规则严格执行。

 二、服务条款
 1、服务内容
  1) 免费提供10兆邮箱存储空间;允许传送附件最大容 量为3兆,允许可收取的单封邮件最大为3兆;
  2) 用户可以使用Web界面收发邮件;
  3) 新注册用户可以使用SMTP/POP功能;
  4) 客服服务邮箱:[email protected]
  5) 本信箱仅对南部县电信用户服务
 2、限制性服务
  1) 系统定期会对邮箱内六个月前的邮件进行清理;
 

 3、服务开通及终止    
   用户必须完全同意所有关于陵江在线免费邮箱的服务条款,并完成相应的注册程序,才能成为陵江在线免费邮箱系统的正式用户。    
  1) 用户连续50天以上(含50天)未以任何方式登录自己的邮箱,系统将此邮箱作无主邮箱,删除该邮箱内的所以邮件,冻结此邮箱的收信功能(用户重新登录后,收信功能自动开启),如用户在帐号冻结后的60天内还未进行登录,将删除其帐号;
  2) 如果用户处于以下状态:再收一封信,邮箱空间就将超出,则系统将会发出警告信通知用户,用户不清理邮箱就无法再继续收信。
  3) 用户违反本服务条款,经陵江在线核实后,将删除其帐号。

  注:用户帐号被删除后,用户使用陵江在线免费邮箱服务的权利马上终止,从即时起,用户没有权利要求,陵江在线也没有义务传送信息给用户或第三方。

 4、保守用户隐私
   真实的用户资料将作为陵江在线提供售后服务的依据和用户获得法律保障的前提,用户必须提供真实的用户资料, 如上述资料有变动,请及时更新。陵江在线保留对不如实填写个人资料之免费邮箱用户取消其使用个人免费邮箱的权利。
   尊重用户个人隐私是陵江在线的一项基本政策,除以下三种情况外,陵江在线不会在未经合法用户授权时,同意公开、编辑或透露用户资料及其它保存在陵江在线中的保密性内容:
  1) 根据有关法律规定要求;
  2) 有关权力机关要求;
  3) 用户授权。

 5、有限责任
   在技术条件和商业条件允许情况下,陵江在线提供如下免费邮箱服务,陵江在线不对其他服务或其它原因导致邮箱系统不能正常运行做出任何承诺。
   陵江在线免费邮箱提供的服务:免费存储空间、系统日常维护、处理客户投诉;陵江在线不对其它服务提出承诺。
   用户的责任:由于用户过错原因导致陵江在线损失(包括因此陵江在线需对第三方承担的损失)由用户赔偿;

 6、法律适用
   用户对所发布邮件的内容单独承担责任,用户对服务的使用是根据国家法律、地方法律和国际成文法律,国际惯例及本协议规定;
   用户需对自己在网上的行为承担法律责任。用户不得在陵江在线上散布和传播反动、色情或其他违反国家法律的信息;
   若用户的行为不符合以上条款,陵江在线将通知该用户,并保留立即终止对该用户的邮箱服务的权利。

 7、商业用途
   陵江在线保留对免费邮箱用户投放商业性广告的权利,如用户对广告的月均点击率低于当月所有免费用户的点击广告平均值的,陵江在线经以电子邮件方式通知用户后,将有权终止并取消其所获得的个人免费邮箱服务。
   如用户拒绝接受陵江在线投放商业性广告的行为,用户可选择取消所获得的个人免费邮箱服务;否则,陵江在线有理由认为用户自愿接受由陵江在线发送的商业广告。

   三、服务条款的调整
   1、个人免费邮箱服务条款要与中华人民共和国的法律法规及其解释相一致,如发生陵江在线服务条款与中华人民共和国法律相抵触时,陵江在线有权单方将这些条款完全按法律规定重新调整,其它条款效力不受影响。
   2、陵江在线服务条款一旦发生变动,将会在重要页面上提示修改内容或以电子邮件形式通知给用户,用户可以作如下选择:
   1) 如果不同意所改动的内容,用户可以主动取消所获得的个人免费邮箱服务;
   2) 如果用户继续使用个人免费邮箱服务,则视为完全接受服务条款的变动。
   3)用户要继续使用陵江在线个人免费邮箱服务,有必要对最新的陵江在线个人免费邮箱服务条款进行仔细阅读和重新确认,当发生有关争议时,以最新的服务条款为准。
   3、不可抗力免责:
  不可抗力是指:不能预见、不能避免且不能克服的客观情况;包括但不限于:天灾人祸、政府行为以及罢工、战争等等原因所导致的本协议任何一方无法完全或部分履行合同的,遭遇不可抗力的一方可据此免责。
  陵江在线在进行服务器配置、维护时有时需要短时间中断服务,或者由于Internet上的通路的偶然阻塞造成用户访问的速度下降或不能正常使用本协议规定的服务,用户认同这属于陵江在线免责范畴,陵江在线无须对此承担任何责任,但有义务尽量避免中断服务,且必要时应于中断前及时通知用户。
</textarea>
    </TD>
   </TR>
   <TR BGCOLOR="#D0E6CE">
    <TD ALIGN="center">
     <input type="checkbox" name="checkbox" value="ok">
     我同意以上协议</TD>
   </TR>
  </TABLE>
  <BR>
  <BR>
  <BR>
  <INPUT TYPE="BUTTON" VALUE="注册" CLASS="myinput2" onClick="regUserInfoData()">
  <INPUT TYPE="reset" VALUE="重填" CLASS="myinput2" name="重设">
 </CENTER>
 <P ALIGN="CENTER">&</P>
</FORM>
</BODY>
</HTML>

本文地址:http://com.8s8s.com/it/it31308.htm