⑴ 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 然後到資料庫里查找這個找回密碼的請求, 並取得用戶相關信息然後提供一個表單用來修改密碼.
用戶輸入新密碼之後程序根據驗證碼和新密碼將指定用戶的密碼修改掉.