数据库类

conn.php

View Code

<?phpclass opmysql{private $host = 'localhost';            //服务器地址    private $name = 'root';                    //登录账号    private $pwd = '123456';                    //登录密码    private $dBase = 'db_reglog';            //数据库名称    private $conn = '';                        //数据库链接资源    private $result = '';                    //结果集    private $msg = '';                        //返回结果    private $fields;                        //返回字段    private $fieldsNum = 0;                    //返回字段数    private $rowsNum = 0;                    //返回结果数    private $rowsRst = '';                    //返回单条记录的字段数组    private $filesArray = array();            //返回字段数组    private $rowsArray = array();            //返回结果数组    //初始化类    function __construct($host='',$name='',$pwd='',$dBase=''){if($host != '')$this->host = $host;if($name != '')$this->name = $name;if($pwd != '')$this->pwd = $pwd;if($dBase != '')$this->dBase = $dBase;$this->init_conn();    }//链接数据库    function init_conn(){$this->conn=@mysql_connect($this->host,$this->name,$this->pwd);        @mysql_select_db($this->dBase,$this->conn);mysql_query("set names gb2312");    }//查询结果    function mysql_query_rst($sql){if($this->conn == ''){$this->init_conn();        }$this->result = @mysql_query($sql,$this->conn);    }//取得字段数     function getFieldsNum($sql){$this->mysql_query_rst($sql);$this->fieldsNum = @mysql_num_fields($this->result);    }//取得查询结果数    function getRowsNum($sql){$this->mysql_query_rst($sql);if(mysql_errno() == 0){return @mysql_num_rows($this->result);        }else{return '';        }        }//取得记录数组(单条记录)    function getRowsRst($sql){$this->mysql_query_rst($sql);if(mysql_error() == 0){$this->rowsRst = mysql_fetch_array($this->result,MYSQL_ASSOC);return $this->rowsRst;        }else{return '';        }    }//取得记录数组(多条记录)    function getRowsArray($sql){$this->mysql_query_rst($sql);if(mysql_errno() == 0){while($row = mysql_fetch_array($this->result,MYSQL_ASSOC)) {$this->rowsArray[] = $row;            }return $this->rowsArray;        }else{return '';        }    }//更新、删除、添加记录数    function uidRst($sql){if($this->conn == ''){$this->init_conn();        }        @mysql_query($sql);$this->rowsNum = @mysql_affected_rows();if(mysql_errno() == 0){return $this->rowsNum;        }else{return '';        }    }//获取对应的字段值    function getFields($sql,$fields){$this->mysql_query_rst($sql);if(mysql_errno() == 0){if(mysql_num_rows($this->result) > 0){$tmpfld = @mysql_fetch_row($this->result);$this->fields = $tmpfld[$fields];

            }return $this->fields;        }else{return '';        }    }

//错误信息    function msg_error(){if(mysql_errno() != 0) {$this->msg = mysql_error();        }return $this->msg;    }//释放结果集    function close_rst(){mysql_free_result($this->result);$this->msg = '';$this->fieldsNum = 0;$this->rowsNum = 0;$this->filesArray = '';$this->rowsArray = '';    }//关闭数据库    function close_conn(){$this->close_rst();mysql_close($this->conn);$this->conn = '';    }}$conne = new opmysql();//新建数据连接源?>

index.php

实现cookie自动登陆

View Code

<?phpsession_start();header('Content-Type:text/html;charset=gb2312');if(!empty($_COOKIE['name']) and !is_null($_COOKIE['name'])){$_SESSION['name'] = $_COOKIE['name'];header('location:http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/main.php');    }else{header('location:http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/login.php');    }?>

main.php

登陆成功后反馈的信息

View Code

<?phpsession_start();?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>登录成功</title></head><body><?php echo '欢迎光临!'.$_SESSION['name']; ?></body></html>

login.php

登陆界面

View Code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>用户登录</title><link rel="stylesheet" type="text/css" href="css/style.css" /><script language="javascript" src="js/login.js"></script><script language="javascript" src="js/xmlhttprequest.js"></script></head><body>      用户名<input id="lgname" name="lgname" type="text"/><br>      密&nbsp;&nbsp;码<input id="lgpwd" name="lgpwd" type="password" /><br>      验证码<input id="lgchk" type="text" maxlength="4" style="width:35px;">      <img id='chkid' src=""/><a id="changea">看不清</a><br>      <button id="lgbtn" >登陆</button>      <button id="rgbtn">注册</button>      <button id="fdbtn">找回密码</button>      <input id="chknm" name="chknm" type="hidden" value=""  /></body></html>

Ajax初始化

xmlhttprequest.js

View Code

var xmlhttp = false;if (window.XMLHttpRequest) {                                     //Mozilla、Safari等浏览器    xmlhttp = new XMLHttpRequest();} else if (window.ActiveXObject) {                                 //IE浏览器    try {        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");    } catch (e) {try {            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");       } catch (e) {}    }}

login.js

登陆界面JS

View Code

// JavaScript Documentfunction $(id){return document.getElementById(id);}window.onload = function(){    showval();    $('lgname').focus();

    $('lgname').onkeydown = function(){//按回车向下移动光标        if(event.keyCode == 13){            $('lgpwd').select();        }    }    $('lgpwd').onkeydown = function(){if(event.keyCode == 13){            $('lgchk').select();        }    }    $('lgchk').onkeydown = function(){if(event.keyCode == 13){             chklg();        }    }    $('lgbtn').onclick = chklg;function chklg(){if($('lgname').value.match(/^[a-zA-Z_]\w*$/) == null){            alert('请输入合法名称');            $('lgname').select();return false;        }if($('lgname').value == ''){            alert('请输入用户名!');            $('lgname').focus();return false;        }if($('lgpwd').value == ''){            alert('请输入密码!');            $('lgpwd').focus();return false;        }if($('lgchk').value == ''){            alert('请输入验证码');            $('lgchk').select();return false;        }if($('lgchk').value != $('chknm').value){            alert('验证码输入错误');            $('lgchk').select();return false;        }//防SQL注入式攻击(        count = document.cookie.split(';')[0];if(count.split('=')[1] >= 3){            alert('因为您的非法操作,您将无法再执行登录操作');return false;        }//)        //$('regimg').style.visibility = "visible";//显示登陆的进度条        //Ajax发送与接受(        url = 'login_chk.php?act='+(Math.random())+'&name='+$('lgname').value+'&pwd='+$('lgpwd').value;        xmlhttp.open('get',url,true);

        xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4){if(xmlhttp.status == 200){                    msg = xmlhttp.responseText;if(msg == '0'){                        alert('您还没有激活,请先登录邮箱进行激活操作。');                    }else if(msg == '1'){                        alert('用户名或密码输入错误,您还有2次机会');                        $('lgpwd').select();                    }else if(msg == '2'){                        alert('用户名或密码输入错误,您还有1次机会');                        $('lgpwd').select();                    }else if(msg == '3'){                        alert('因为登录次数过多,您的帐号已被冻结,请联系管理员');                        $('lgname').select();                    }else if(msg == '4'){                        alert('用户名输入错误');                        $('lgname').select();                    }else if(msg == '-1'){                        alert('登录成功');                        location = 'main.php';                    }else{                        alert(msg);                    }//$('regimg').style.visibility = "hidden";                }            }        }        xmlhttp.send(null);    }//)    $('changea').onclick = showval;//刷新验证码    //生成验证码(    function showval(){        num = '';for(i=0;i<4;i++){            tmp =  Math.ceil((Math.random() * 15));if(tmp > 9){switch(tmp){case(10):                        num += 'a';break;case(11):                        num += 'b';break;case(12):                        num += 'c';break;case(13):                        num += 'd';break;case(14):                        num += 'e';break;case(15):                        num += 'f';break;                }            }else{                num += tmp;            }        }        $('chkid').src='valcode.php?num='+num;        $('chknm').value = num;    }//)    $('fdbtn').onclick = function(){        fd  = window.open('found.php','found','width=300,height=200');//在新窗口中打开        fd.moveTo(screen.width/2,200);    }    $('rgbtn').onclick = function(){        open('register.php','_parent','',false);//直接打开    }}

login_chk.php

Ajax登陆后台验证

View Code

<?phpsession_start();header('Content-Type:text/html;charset=gb2312');include_once 'conn/conn.php';$name = addslashes($_GET['name']);$pwd = $_GET['pwd'];if(!empty($name) and !empty($pwd)){$sql = "select name,count,active from tb_member where name = '".$name."'";$active = $conne->getFields($sql,2);$count = $conne->getFields($sql,1);$conne->close_rst();if($active == ''){if(!isset($_COOKIE['count']) or $_COOKIE['count'] == 0){setcookie('count',1);            }else{setcookie('count',$_COOKIE['count']+1);            }$reback = 4;        }else if($active == 0){//判断用户名是否被激活            $reback = '0';        }else if($count >= 3){//判断用户的登陆次数            $reback = '3';        }else{$sql .= " and password = '".md5($pwd)."'";$num = $conne->getRowsNum($sql);if($num == 0 or $num == ''){//如果用户名密码错误,登录次数加1                $num = $conne->uidRst("update tb_member set count = ".($count+1)." where name = '".$name."'");$reback = ($count+1);            }else{//登陆成功,清空count字段值                if($count != 0){$num = $conne->uidRst("update tb_member set count = 0 where name = '".$name."'");                }//设置COOKIE                if(isset($_COOKIE['count']) and $_COOKIE['count'] != 0){setcookie('count',0);                }setcookie('name',$name,time()+60*10);$_SESSION['name'] = $name;$reback = '-1';            }        }    }echo $reback;?>

生成验证码图片

valcode.php

View Code

<?php//header("content-type:image/png");    $num = $_GET['num'];$imagewidth=60;$imageheight=18;

$numimage = imagecreate($imagewidth,$imageheight);    imagecolorallocate($numimage,240,240,240);for($i=0;$i<strlen($num);$i++){$x = mt_rand(1,8)+$imagewidth*$i/4;$y = mt_rand(1,$imageheight/4);$color=imagecolorallocate($numimage,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));        imagestring($numimage,5,$x,$y,$num[$i],$color);    }

for($i=0;$i<200;$i++){$randcolor=imagecolorallocate($numimage,rand(200,255),rand(200,255),rand(200,255));          imagesetpixel($numimage,rand()%70,rand()%20,$randcolor);     }    imagepng($numimage);    imagedestroy($numimage);?>

注册页面
register.php

View Code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>注册</title><link rel="stylesheet" type="text/css" href="css/style.css" /><script language="javascript" src="js/xmlhttprequest.js"></script><script language="javascript" src="js/register.js"></script></head><body><div id="container">  <div id="rgbgdiv">    <div id="regnamediv"><b>注册名称:</b>      <input id="regname" name="regname" type="text" />      <div id="namediv">请输入用户名</div>    </div>    <div id="regpwddiv1"><b>注册密码:</b>      <input id="regpwd1" name="regpwd1" type="password" />      <div id="pwddiv1">请输入密码</div>    </div>    <div id="regpwddiv2"><b>确认密码:</b>      <input id="regpwd2" name="regpwd2" type="password" />      <div id="pwddiv2">请输入确认密码</div>    </div>    <div id="regemaildiv"><b>电子邮箱:</b>      <input id="email" name="email" type="text" />      <div id="emaildiv">用户激活和找回密码使用</div>    </div>    <div id="morediv" style="display:none;">      <hr id="part" />      <div id="regquestiondiv"><b>密保问题:</b>        <input id="question" name="question" type="text" />        <div id="questiondiv">用户激活和找回密码使用</div>      </div>      <div id="reganswerdiv"><b>密保答案:</b>        <input id="answer" name="answer" type="text" />        <div id="answerdiv">用户激活和找回密码使用</div>      </div>      <div id="regrealnamediv"><b>真实姓名:</b>        <input id="realname" name="realname" type="text" />        <div id="realnamediv">用户的真实姓名</div>      </div>      <div id="regbirthdaydiv"><b>出生日期:</b>        <input id="birthday" name="birthday" type="text" />        <div id="birthdaydiv">用户的出生日期。格式:YYYY-MM-DD</div>      </div>      <div id="regtelephonediv"><b>联系电话:</b>        <input id="telephone" name="telephone" type="text" />        <div id="telephonediv">用户的联系电话</div>      </div>      <div id="regqqdiv"><b>QQ号 码:</b>        <input id="qq" name="qq" type="text" />        <div id="qqdiv">用户QQ号</div>      </div>    </div>    <div id="btndiv2">      <button id="regbtn" disabled="disabled">&nbsp;</button>      <button id="morebtn">&nbsp;</button>      <button id="logbtn">&nbsp;</button>    </div>  </div>  <div id="imgdiv" style=" visibility: hidden;">&nbsp;</div></div></body></html>

注册Ajax

register.js

View Code

// JavaScript Documentfunction $(id){return document.getElementById(id);}window.onload = function(){    $('regname').focus();var cname1,cname2,cpwd1,cpwd2,cemail;//设置激活按钮    function chkreg(){if((cname1 == 'yes') && (cname2 == 'yes') && (cpwd1 == 'yes') && (cpwd2 == 'yes') && (cemail == 'yes')){            $('regbtn').disabled = false;        }else{            $('regbtn').disabled = true;        }    }//验证用户名    $('regname').onkeyup = function (){        name = $('regname').value;        cname2 = '';if(name.match(/^[a-zA-Z_]*/) == ''){            $('namediv').innerHTML = '<font color=red>必须以字母或下划线开头</font>';            cname1 = '';        }else if(name.length < 2){            $('namediv').innerHTML = '<font color=red>注册名称必须大于等于2位</font>';            cname1 = '';        }else{            $('namediv').innerHTML = '<font color=green>注册名称符合标准</font>';            cname1 = 'yes';        }        chkreg();    }//验证是否存在该用户    $('regname').onblur = function(){        name = $('regname').value;if(cname1 == 'yes'){            xmlhttp.open('get','chkname.php?name='+name,true);            xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4){if(xmlhttp.status == 200){var msg = xmlhttp.responseText;if(msg == '1'){                            $('namediv').innerHTML="<font color=green>恭喜您,该用户名可以使用!</font>";                            cname2 = 'yes';                        }else if(msg == '2'){                            $('namediv').innerHTML="<font color=red>用户名被占用!</font>";                            cname2 = '';                        }else{                            $('namediv').innerHTML="<font color=red>"+msg+"</font>";                            cname2 = '';                        }                    }                }                chkreg();            }            xmlhttp.send(null);        }    }//验证密码    $('regpwd1').onkeyup = function(){        pwd = $('regpwd1').value;        pwd2 = $('regpwd2').value;if(pwd.length < 6){            $('pwddiv1').innerHTML = '<font color=red>密码长度最少需要6位</font>';            cpwd1 = '';        }else if(pwd.length >= 6 && pwd.length < 12){            $('pwddiv1').innerHTML = '<font color=green>密码符合要求。密码强度:弱</font>';            cpwd1 = 'yes';        }else if((pwd.match(/^[0-9]*$/)!=null) || (pwd.match(/^[a-zA-Z]*$/) != null )){            $('pwddiv1').innerHTML = '<font color=green>密码符合要求。密码强度:中</font>';            cpwd1 = 'yes';        }else{            $('pwddiv1').innerHTML = '<font color=green>密码符合要求。密码强度:高</font>';            cpwd1 = 'yes';        }if(pwd2 != '' && pwd != pwd2){            $('pwddiv2').innerHTML = '<font color=red>两次密码不一致!</font>';            cpwd2 = '';        }else if(pwd2 != '' && pwd == pwd2){            $('pwddiv2').innerHTML = '<font color=green>密码输入正确</font>';            cpwd2 = 'yes';        }        chkreg();    }//验证确认密码    $('regpwd2').onkeyup = function(){        pwd1 = $('regpwd1').value;        pwd2 = $('regpwd2').value;if(pwd1 != pwd2){            $('pwddiv2').innerHTML = '<font color=red>两次密码不一致!</font>';            cpwd2 = '';        }else{            $('pwddiv2').innerHTML = '<font color=green>密码输入正确</font>';            cpwd2 = 'yes';            chkreg();        }    }//验证email    $('email').onkeyup = function(){        emailreg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;        $('email').value.match(emailreg);if($('email').value.match(emailreg) == null){            $('emaildiv').innerHTML = '<font color=red>错误的email格式</font>';            cemail = '';        }else{            $('emaildiv').innerHTML = '<font color=green>输入正确</font>';            cemail = 'yes';        }        chkreg();    }

//显示/隐藏详细信息    $('morebtn').onclick = function(){

if($('morediv').style.display == ''){            $('morediv').style.display = 'none';        }else{            $('morediv').style.display = '';        }    }//登录按钮    $('logbtn').onclick = function(){        window.open('login.php','_parent','',false);    }//正式注册    $('regbtn').onclick = function(){        $('imgdiv').style.visibility = 'visible';        url = 'register_chk.php?name='+$('regname').value+'&pwd='+$('regpwd1').value+'&email='+$('email').value;        url += '&question=' +$('question').value+'&answer='+$('answer').value;        url += '&realname=' +$('realname').value+'&birthday='+$('birthday').value;        url += '&telephone='+$('telephone').value+'&qq='+$('qq').value;        xmlhttp.open('get',url,true);        xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4){if(xmlhttp.status == 200){                    msg = xmlhttp.responseText;if(msg == '1'){                        alert('注册成功,请到您的邮箱中获取激活码!');                        location='index.php';                    }else if(msg == '-1'){                        alert('您的服务器不支持Zend_mail,或者邮箱填写错误。请仔细检查!!');                    }else{                        alert(msg);                    }                    $('imgdiv').style.visibility = 'hidden';                }            }        }        xmlhttp.send(null);    }}

注册后台处理,发送验证邮件需要下载Zend Framework

register_chk.php

View Code

<?phpinclude_once 'conn/conn.php';require_once 'Zend/Mail.php';                        //调用发送邮件的文件    require_once 'Zend/Mail/Transport/Smtp.php';        //调用SMTP验证文件    $reback = '0';$url = 'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/activation.php';$url .= '?name='.trim($_GET['name']).'&pwd='.md5(trim($_GET['pwd']));

//发送激活邮件    $subject="激活码的获取";$mailbody='注册成功。您的激活码是:'.'<a href="'.$url.'" target="_blank">'.$url.'</a><br>'.'请点击该地址,激活您的用户!';//定义邮件内容    $envelope="mrsoft8888@sohu.com";        //定义登录使用的邮箱

$config = array('auth' => 'login',            'username' => 'mrsoft8888',            'password' => 'mrsoft8888');                //定义SMTP的验证参数    $transport = new Zend_Mail_Transport_Smtp('smtp.sohu.com', $config);        //实例化验证的对象    $mail = new Zend_Mail('GBK');            //实例化发送邮件对象    $mail->setBodyHtml($mailbody);                //发送邮件主体    $mail->setFrom($envelope, '明日科技典型模块程序测试邮箱,恭喜您用户注册成功!');    //定义邮件发送使用的邮箱    $mail->addTo($_GET['email'], '获取用户注册激活码');        //定义邮件的接收邮箱    $mail->setSubject('获取注册用户的激活码');                //定义邮件主题    $mail->send($transport);                                //执行发送操作

/*   网络版发送邮件方法  */    $birthday='0000-00-00';if($_GET['birthday']!='')$birthday=$_GET['birthday'];$sql = "insert into tb_member(name,password,question,answer,email,realname,birthday,telephone,qq) values('".trim($_GET['name'])."','".md5(trim($_GET['pwd']))."','".$_GET['question']."','".$_GET['answer']."','".$_GET['email']."','".$_GET['realname']."','".$birthday."','".$_GET['telephone']."','".$_GET['qq']."')";$num = $conne->uidRst($sql);if($num == 1){$reback = '1';        }echo $reback;?>

验证用户名是否被占用

chkname.php

View Code

<?phpinclude_once "conn/conn.php";$sql = "select * from tb_member where name='".$_GET['name']."'";$num = $conne->getRowsNum($sql);if($num == 1){echo '2';}else if($num == 0){echo '1';}else{echo $conne->msg_error();}?>

找回密码的页面
found.php

View Code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>找回密码</title><link rel="stylesheet" href="css/style.css" /><script language="javascript" src="js/found.js"></script><script language="javascript" src="js/xmlhttprequest.js"></script></head><body><div id="fdbgdiv" >    <div id="top">&nbsp;>>密码找回</div>    <div id="foundnamediv">找回账号: <input id="foundname" type="text" style=" width: 100px; height:15px; border:1px #000000 solid;" /></div>    <div id="foundnamediv">密保问题: <input id="fdquestion" type="text" style=" width: 100px; height:15px; border:1px #000000 solid;" /></div>  <div id="foundnamediv">密保答案: <input id="fdanswer" type="text" style=" width: 100px; height:15px; border:1px #000000 solid;" /></div>  <div id="foundnamediv" align="center"><button id="step1"></button></div></div></body></html>

找回密码的Ajax

found.js

View Code

// JavaScript Documentfunction $(id){return document.getElementById(id);}window.onload = function(){    $('foundname').focus();    $('step1').onclick = function(){if($('foundname').value != '' && $('fdquestion').value != '' && $('fdanswer').value != ''){            xmlhttp.open('get','found_chk.php?foundname='+$('foundname').value+'&question='+$('fdquestion').value+'&answer='+$('fdanswer').value,true);            xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){                    msg = xmlhttp.responseText;if(msg == '1'){                        alert('找回密码成功,请登录邮箱注册邮箱!');                        window.close();                    }else{                        alert('填写的信息错误');                    }                }            }            xmlhttp.send(null);        }else{            alert('请填写完成信息');            $('foundname').focus();return false;        }    }}

found_chk.php

找回密码的后台,发送包含密码的邮件,与注册时类似

View Code

<?phpinclude_once 'conn/conn.php';require_once 'Zend/Mail.php';                        //调用发送邮件的文件    require_once 'Zend/Mail/Transport/Smtp.php';        //调用SMTP验证文件    $reback = '0';$name = $_GET['foundname'];$question = $_GET['question'];$answer = $_GET['answer'];$sql = "select email from tb_member where name = '".$name."' and question = '".$question."' and answer = '".$answer."'";$email = $conne->getFields($sql,0);if($email != '')    {$rnd = rand(1000,time());$sql = "update tb_member set password = '".md5($rnd)."' where name = '".$name."' and question = '".$question."' and answer = '".$answer."'";$tmpnum = $conne->uidRst($sql);if($tmpnum >= 1)        {$subject="找回密码";$mailbody='密码找回成功。您帐号的新密码是'.$rnd;$reback='1';$envelope="mrsoft8888@sohu.com";$config = array('auth' => 'login',            'username' => 'mrsoft8888',            'password' => 'mrsoft8888');                //定义SMTP的验证参数            $transport = new Zend_Mail_Transport_Smtp('smtp.sohu.com', $config);        //实例化验证的对象            $mail = new Zend_Mail('GBK');            //实例化发送邮件对象            $mail->setBodyHtml($mailbody);                //发送邮件主体            $mail->setFrom($envelope, '明日科技典型模块程序测试邮箱,修改用户注册密码!');    //定义邮件发送使用的邮箱            $mail->addTo($email, '获取用户新密码');        //定义邮件的接收邮箱            $mail->setSubject($subject);                //定义邮件主题            $mail->send($transport);            }else        {$reback = $sql;        }    }echo $reback;?>

利用邮件的超链接激活页面

activation.php

View Code

<?phpsession_start();header('Content-Type:text/html;charset=gb2312');include_once("conn/conn.php");if (!empty($_GET['name']) && !is_null($_GET['name'])){                //激活注册用户    $num=$conne->getRowsNum("select * from tb_member where name='".$_GET['name']."' and password = '".$_GET['pwd']."'");if ($num>0){$upnum=$conne->uidRst("update tb_member set active = 1 where name='".$_GET['name']."' and password = '".$_GET['pwd']."'");if($upnum > 0){$_SESSION['name'] = $_GET['name'];echo "<script>alert('用户激活成功!');window.location.href='main.php';</script>";        }else{echo "<script>alert('您已经激活!');window.location.href='main.php';</script>";        }

    }else{echo "<script>alert('用户激活失败!');window.location.href='register.php';</script>";    }}?>

------------修改自<<PHP开发典型模块大全>>-------------------

转载于:https://www.cnblogs.com/xchaos/archive/2012/03/10/2389479.html

一个比较完整的登陆和注册后台相关推荐

  1. flutter:一个完整的登陆页

    如果路上有坑,就要毫不犹豫的跳下去 登陆页是一个软件的门面.一个完整的登陆页包含账号密码登陆.验证码登陆.注册及忘记密码四个功能,下面从框架开始一步步完成. 踩坑记录: 背景图由于键盘弹起导致图片变形 ...

  2. 用VUE实现一个具有登陆、注册等功能的网站【详细步骤】

    用VUE实现一个具有登陆.注册等功能的网站[详细步骤] 用VUE实现一个具有登陆.注册等功能的网站[详细步骤] 一.主要功能 二.实现思路 1.页面设计 2.功能设计 3.重点和难点 三.代码实现 1 ...

  3. 使用Java编写一个简单的 JFrame登陆注册界面(一)

    使用Java awt 及 Swing 组件编写一个简单的JFrame登陆注册界面. 示例: 下面开始介绍如何编写. 通过调用实例化一个JFrame框架,在框架内嵌入JPanel,在JPanel上进行添 ...

  4. 教你用C++做一个简单的用户名以及密码注册系统

    很多网站在访问时都要登陆或注册,今天,小编教大家做一个特别简单的注册系统. 首先在注册时先会让你设置用户名,我们用一个字符串存储并输入它: int main(){string name;getline ...

  5. android之利用SQLite数据库实现登陆和注册

    首先,说一下SQLite的概念: SQLite 是一个开源的嵌入式关系数据库,它可以减少应用程序管理数据的开销 , SQLite 可移植性好 . 很容易使用 . 很小 . 高效而且可靠 .目前在And ...

  6. 这两天老是有兄弟问到Vue的登陆和注册,登陆成功留在首页,没有登录回到登录页面,现在我用最简单实用的方法实现(两分钟技就看懂)...

    其实登录注册,并且登录一次保持登录的状态,是每个项目都需要实现的功能. 网上也有很多的方法,不过,不是通俗易懂,在这里说一下我自己的方法,非常简单实用 核心就是用localStorage存.取数据,这 ...

  7. android mysql实现登录注册_android简单登陆和注册功能实现+SQLite数据库学习

    android简单登陆和注册功能实现+SQLite数据库学习 发布时间:2018-07-04 17:23, 浏览次数:1027 , 标签: android SQLite 这里我只是建立了一个用简单的存 ...

  8. j2ee使用struts实现用户的登陆及注册

    j2ee中使用struts实现用户的登陆及注册,要清楚Eclipse是如何连接MySQL数据库:对一个form提交的多个submit按钮分配不同的action或method,这里主要介绍到两种实现方法 ...

  9. javaee jsp实现留言板(eclipse+mysql),五个界面,留言、登陆、注册等

    本文转载自http://yanzw.cn/,点击跳转原地址,源码请访问http://yanzw.cn/er/about获取 javaee jsp实现留言板(eclipse+mysql),五个界面,留言 ...

最新文章

  1. Markdown中如何输入上标、下标?
  2. 2018/7/19-纪中某C组题【jzoj3461,jzoj3462,jzoj3463,jzoj3464】
  3. SQLserver锁和事务隔离级别的比较与使用
  4. Acrobat Pro DC 教程,如何将文件合并为 PDF?
  5. 操作系统 第二部分 进程管理(三)
  6. Linux 小知识翻译 - 「GCC」
  7. 百度热力图颜色说明_基于百度热力图的中国多中心城市分析|上海城市规划
  8. 谈谈今年很火的区块链 CDN
  9. 手机游戏修改客户端服务器,服务器 客户端手机游戏
  10. 大数据战略能不能打造第二个百度?
  11. 如何在Excel表中快速提取想要的数据
  12. 如何在阿里云物联网平台新增一个设备
  13. 使用php实现自动获取一个获取文章标题生成主题关键词功能源码
  14. 解决“无法获得下列许可 solidworks standard无法连接到服务器”的问题
  15. rule of thumb - “经验法则”或者“拇指规则”
  16. Android简易实战教程--第五话《开发一键锁屏应用》
  17. ESP32 常用蓝牙AT指令使用例程
  18. 词袋模型BoW和词集模型SoW比较
  19. 网课-文献管理与信息分析-罗昭峰作业答案(二)
  20. Python:第二篇【Python】进阶-关东升-专题视频课程

热门文章

  1. Js与Jq实战:第七讲:jQuery基础
  2. $inject的用法
  3. 免费可商用的图片资源推荐
  4. 图形编辑器——Graph Editor(树图必备)
  5. ps 仿章工具的使用
  6. 关于gist.github.com网站不能访问的解决办法
  7. 使用蓝桥杯单片机做一个智能密码锁可以修改密码
  8. Nacos服务器1.4.1下载篇
  9. MySQL学习之一条SQL更新语句的执行
  10. python实例-银行管理系统(特简单的那种)