2011-08-16 41 views
0

什麼是在PHP中執行「重置密碼」功能的最佳方式?在PHP中執行「重置密碼」功能的最佳方法是什麼?

兩步法。

  • 用戶將輸入電子郵件ID,郵件將發送給用戶的鏈接。

  • 當用戶點擊鏈接時,他可以看到兩個字段來重置他的密碼。

任何人都可以正確的腳本流這個嗎?

+0

你在哪裏堅持實施這個?聽起來像你有正確的基本想法。 – deceze

+4

重要的是,該網址應該只是一次性使用。並且在請求後它應該到期 – zerkms

+0

我同意@zerkms。同時重置url也需要過期日期。 – blottedscience

回答

6

我希望這會幫助你。首先必須創建一個表名「token」,其中包含一列seqid,tokenid,status .. sequence id將表示哈希表中的序列號tokenid和它自己解釋的狀態。

現在你必須計算一次url只用戶點擊重置密碼後系統將生成一個tokenid(它由你決定如何生成一個hash值) 然後編寫一個url通過電子郵件提交給用戶

域名/功能還是頁面?用戶名(以哈希形式)& tokenid

例如:

http://www.yourdomain.com/resetpassword.php?_u=82cc5b9e02d711035aafef9e18c7eb26973e8962&tokenid=82cc5b9e02d711035aafef9e18c7eb26973e8962

後用戶點擊鏈接就會去運作,檢查誰是用戶或者如果現有的和tokenid如果已經過期

ex. "select user from users where sha1(username) = $userInHashForm " 
    "Select * from token where tokenid = $tokenid AND status = 'active'" 

,然後重置他/她的密碼,當它完成您需要更改爲「無效」,因此它不能被再次

使用令牌狀態

謝謝請率! goodluck

+0

感謝您的評價。 –

相關問題