欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
PHP找回密碼機制流程
筆者前段接了一個(gè)項目,其中包含了一個(gè)用戶(hù)注冊系統,用到了密碼找回功能,簡(jiǎn)單整理一下,寫(xiě)點(diǎn)心得。時(shí)間倉促,如有筆誤,請大大們指點(diǎn)(phpsoho.com@gmail.com)。
 
首先,我們假定你已經(jīng)有了一個(gè)用戶(hù)注冊系統。其中用戶(hù)表可能如下:
 
create table member(
  id int unsigned not null auto_incremtnt,
  username………………
  passwords char(32) not null,
  email varchar(100) not null,
  ……………………………..
);
 
現在討論的焦點(diǎn)不是數據庫設計,我們主要談密碼找回。
 
我們可以選擇的密碼找回方案可能有以下幾種:
1.       用戶(hù)預設找回密碼問(wèn)題,并且提供找回密碼答案。
2.       用戶(hù)通過(guò)email 找回密碼
..........................
 
第一種方案或許是個(gè)很好的解決方案,但我們這次并不選擇此方案,其中的種種原因,也不在本討論之內。我們用第二種方案作為本次的主要討論對象。
 
那么我們開(kāi)始吧。
 
第二種方案的其中好處是:
1.      注冊用戶(hù)必須提供正確的郵箱,否則將不能使用系統所提供的密碼重設功能。
2.      必須由該用戶(hù)通過(guò)郵箱確認。
這可能對企業(yè)來(lái)說(shuō),是件好事。企業(yè)總是費勁心思的想得到用戶(hù)真實(shí)的詳細信息,以便進(jìn)行有針對性的郵件列表服務(wù)。這也是這次開(kāi)發(fā)用戶(hù)要求這樣做的一個(gè)主要原因。
 
我們可能會(huì )在login界面提供一個(gè)鏈接,或者在login失敗后提供一個(gè)鏈接。鏈接名當然你可以自己定義了,我定義的是:忘了密碼,需要找回嗎?
 
當用戶(hù)點(diǎn)擊找加密碼時(shí),我們會(huì )提供一個(gè)input表單。讓用戶(hù)輸入用戶(hù)名(如果是login失敗后,我們可以用session填充表單內容)。用戶(hù)點(diǎn)擊提交后,我們開(kāi)始我們的密碼重設功能流程。
 
我們可能會(huì )創(chuàng )建這樣一個(gè)文件 send_reset_pass_mail.php。這個(gè)文件主要負責產(chǎn)生一個(gè)通過(guò)GET方法傳遞的字符串,并且將其發(fā)送出去。
 
代碼可能如下:

PHP代碼:
<?php
/**
 * 我們假設你已經(jīng)在config.inc.php文件里配置好了你的sql信息,mail信息
*/
require_once('config.inc.php');

/**
* 你需要一下sendmail類(lèi)來(lái)進(jìn)行郵件發(fā)送,我們也假設你已經(jīng)配置好,并且能正發(fā)送郵件
*/
require_once('sendMail.inc.php');

/**
 * 首先我們執行查詢(xún),得到此用戶(hù)的相關(guān)信息
 * 你不要告訴我你不知道$_POST['username']是怎么得到的,如果是這樣,我郁悶一下你。
 * 我使用了adodb的類(lèi),并且已經(jīng)在配置文件中聲明過(guò)
*/
$username trim($_POST['username']);

$sql 
"select email,passwords from member where username = '".trim($_POST['username'])."'";
$userInfo $db->FetchRow($sql);

$user_pass $userInfo['passwords'];
$user_email $userInfo['email'];

/**
 * OK,一些需要的東西我們都有了,看來(lái)得進(jìn)行下步操作了
 * 現在讓我們產(chǎn)生一個(gè)經(jīng)過(guò)md5加密碼過(guò)的字符串,先不要問(wèn)為什么,等會(huì )再告訴你
*/ 

$x md5($username.'+'.$passwords);
//現在我們可以發(fā)送郵件給用戶(hù)了。當然,我們還得需要另一個(gè)密碼重設程序 resetUserPass.php
$String base64_encode($username.".".$x);

$sendMail = new sendMail();
$subject "你的密碼找回信";
$message "尊敬的".$username."先生/女士:<br />    你使用了本站提供的密碼找回功能,如果你確認此密碼找回功能是你啟用的,請點(diǎn)擊下面的鏈接,按流程進(jìn)行密碼重設。<br><br>歡迎你經(jīng)常訪(fǎng)問(wèn)本站。站長(cháng)無(wú)喱頭謝謝你經(jīng)常光顧本站!<br><Br><a href='/resetUserPass.php?p=".$String.">確認密碼找回</a>";

if( 
$sendMail->mailto($user_email,$subject,$message) )
{
       
//信息發(fā)送發(fā)功了,這里可以執行其它動(dòng)作。
}
else
{
       die(
"由于xx原因,你執行的找回密碼未能成功!請登陸網(wǎng)站,與站長(cháng)聯(lián)系。謝謝");
}
?>

 
那么好,我們的信件已經(jīng)成功發(fā)出了,哪么用戶(hù)得到了一個(gè)什么樣的鏈接呢?
可能如下:
/resetUserPass.php?p=dT1saXRvdSZ4PTAwZTc1MGZlNmZjOGNkNGYyMjgzMDA3MWJlZDNmZTAw
 
用戶(hù)點(diǎn)擊過(guò)后,執行我們站點(diǎn)的resetUserPass.php程序。
 
PHP代碼:
<?php
require_once('config.inc.php');
/**
 * 用base64_decode解開(kāi)$_GET['p']的值
*/
 
$array explode('.',base64_decode($_GET['p']));

/**
 * 這時(shí),我們會(huì )得到一個(gè)數組,$array,里面分別存放了用戶(hù)名和我們需要一段字符串
 * $array[0] 為用戶(hù)名
 * $array[1] 為我們生成的字符串
*/
//好了,我們開(kāi)始進(jìn)行匹配工作吧。

$sql "select passwords from member where username = '".trim($_array['0'])."'";

$passwords $db->GetOne($sql);

/**
 * 產(chǎn)生配置碼 
*/
 
$checkCode md5($array['0'].'+'.$passwords);

/**
 * 進(jìn)行配置驗證: => 
*/

if( $array['1'] === $checkCode ){
       
//執行重置程序,一般給出三個(gè)輸入框。
       
Echo "<input name=username value='".$array['0']."' onlyread>";
       Echo 
"<input name=userpasswd type=password>";
       Echo 
"<input name=reinput type=password>";
}else{
       
//給出定義錯誤頁(yè)面
}

//OK了,接下來(lái)的工作是我們進(jìn)行數據庫更新了?這里就不再說(shuō)了。。。
?>
 
然后用戶(hù)進(jìn)行login。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
9.1 通過(guò)PHP操作MySQL數據庫 - 《PHP數據庫系統開(kāi)發(fā)完全手冊》 - 免費試讀...
php 登錄時(shí)用戶(hù)名與密碼驗證器
SQL注入攻擊常見(jiàn)方式及測試方法
入門(mén):PHP與MYSQL的結合操作
Web應用手工滲透測試
利用SQL注入漏洞登錄后臺
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久