⑴ php如何找回密码
这是一个做好的密码找回 你先看一下 有不懂的你再问 <? ob_start(); //解决header不好使问题
session_start();
require_once("root.php");
try{
$dbUsers=new DBUsers();
$Users=new Users();
}catch (Exception $e){ //抛出错误异常
print $e->getMessage();
exit();
}
?>
<form action="pass.php?action=select" method="post">
用户名:<input type="text" name="name" value=""/>
<input type="submit" name="button" value="提交" />
</form>
<?
if($_GET['action']=='select'){
$dbUsers->name=$_POST['name'];
$users=$Users->selectUsers($dbUsers);
//显示密保
switch ((int)$users->question){
case 1:
echo "问题:你所在的城市?";
break;
case 2:
echo "问题:你的出生地?";
break;
case 3:
echo "问题:你的出生日期?";
break;
case 4:
echo "问题:你配偶的名字?";
break;
case 5:
echo "问题:你父亲的名字?";
break;
}?>
<form action="pass.php?action=insert&name=<?=$users->name?>" method="post">
答案:<input type="text" name="answer" value=""/>
<input type="submit" name="button" value="提交" />
</form>
<?
}if ($_GET['action']=='insert'){
$dbUsers->name=$_GET['name'];
$users=$Users->selectUsers($dbUsers);
//echo $users->answer."--------";
//echo $_POST['answer'];
if ($users->answer==$_POST['answer']){
header("Location:pass.php?action=update&name=$users->name");
ob_end_flush();//解决header不好使问题
}else{
echo "<script language='javascript'>alert('回答不正确')</script>";
}
}
?><?
//密码修改
if($_GET['action']=='update'){
$dbUsers->name=$_GET['name'];
?>
<h1>密码修改</h1>
<form action="pass.php?action=upsave&name=<?=$dbUsers->name?>" method="post">
新密码:<input type="password" name="pwd1" value=""/>
密码确认:<input type="password" name="pwd2" value=""/>
<input type="submit" name="button" value="提交" />
</form>
<?
}?><?
//密码更新
if($_GET['action']=='upsave'){
// $dbUsers->name=$_SESSION['name'];
$dbUsers->pwd=$_POST['pwd1'];
$dbUsers->name=$_GET['name'];
$msg=$Users->updateUsers($dbUsers);
if($msg){
echo "<script language='javascript'>alert('修改成功');location.href='index.php'</script>";
}}
?>
⑵ php 忘记密码 通过邮箱找回密码功能怎么实现
确保用户注册的时候认证了邮箱;
找回密码的时候可是使用验证码的方式,先由php产生一个随机数,并发送放到该用户邮箱;
获取用户填写的验证码是否等于该随机数;
验证成功用php里面的UPDATE 替换掉数据库里面的密码字段;
成功。
望采纳。
⑶ 求大神!帮我修改PHP.找回密码。只验证邮箱 和接受新密码 其他的什么都不需要.不让发那么多字符
虽然觉得你这样的涉及会存在问题,不过关键看你们如何验证用户是自己在使用,因为知道一个人的邮箱很容易;这个应该不难,不破不立,你得认识语言的本质,不应该只修改别人的代码,首先忘记密码应该是一个单独的逻辑:
在user控制器里面写个find_password(){
//接受变量,一般会单独共有库写个接收方法,涉及权限验证;避免注入或攻击;
$mail = $_POST["mail"];
$psw = $_POST["password"];
//判断mail,psw是否合法
if(checkMail($mail )&&checkPsw($psw)){
以mail获取对方user信息
updatePsw($mail,$psw);
}
}
//校验邮箱
checkMail($mail ){
}
checkPsw($psw){}
updatePsw($mail,$psw){
}
⑷ PHP邮件验证找回密码
给你举个例子, 就拿找回密码来说吧.
当用户请求找回密码的时候, 用户根据用户提供的用户名或邮箱到数据库查找这个用户的信息, 如果相关用户名或者邮箱存在就可以进行密码找回, 如果不存在提示用户输入错误.
当在数据库中找到相关记录的时候, 首先要生成一个随机的验证码(这里我们假设生成了ABCDE), 将验证码,请求时间和相关用户信息(可能只是用户id或者也可以将验证码存在用户信息表中)存到数据库中, 然后想记录中的邮箱发送一封信, 信中提供一个验证码或者携带验证码的url类似这样,a.php?code=ABCDE.
用户如果是这个邮箱的所有者就可以收到这封信, 点击链接访问a.php ?code=ABCDE, a.php 接到code=ABCDE 然后到数据库里查找这个找回密码的请求, 并取得用户相关信息然后提供一个表单用来修改密码.
用户输入新密码之后程序根据验证码和新密码将指定用户的密码修改掉.