一个比较完整的登陆和注册后台
Posted 雪上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个比较完整的登陆和注册后台相关的知识,希望对你有一定的参考价值。
数据库类
conn.php
<?php
class 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自动登陆
<?php
session_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
登陆成功后反馈的信息
<?php
session_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
登陆界面
<!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>
密 码<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
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
// JavaScript Document
function $(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登陆后台验证
<?php
session_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
<?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
<!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"> </button>
<button id="morebtn"> </button>
<button id="logbtn"> </button>
</div>
</div>
<div id="imgdiv" style=" visibility: hidden;"> </div>
</div>
</body>
</html>
注册Ajax
register.js
// JavaScript Document
function $(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
<?php
include_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
<?php
include_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
<!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"> >>密码找回</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
// JavaScript Document
function $(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
找回密码的后台,发送包含密码的邮件,与注册时类似
<?php
include_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
<?php
session_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开发典型模块大全>>-------------------
详细↓
http://www.cnblogs.com/xchaos/archive/2012/03/10/2389479.html以上是关于一个比较完整的登陆和注册后台的主要内容,如果未能解决你的问题,请参考以下文章
我在一个后台登陆时,把用户名存入session中了,如果修改密码session丢失,怎么办