本文講述了使用PHP+MySQL實現修改密碼的具體代碼,以及操作過程。
頁面:
index.php 登陸頁面,輸入默認密碼登陸系統
check.php 核查頁面,通過查詢數據庫檢測密碼是否正確 —— 正確,則進入系統 或 錯誤,提示“密碼錯誤”,返回登錄頁面
system.php 系統頁面,內含“修改密碼”鏈接
change.php 輸入新密碼修改頁面
changePwd.php 修改密碼頁面
關鍵代碼:
index.php
form action= check.php method= post p 請輸入密碼: /p input type= password name= psd / button type= submit name= submit value= 登錄 / 登錄 /button /form
check.php
?php$servername = localhost $username = 用戶 $password = 密碼 $dbname = 數據庫名
$sql = SELECT password FROM admin //此處涉及名稱是admin的數據表,內部有name 和password兩個字段,值分別是admin 和 1$result = $conn- query($sql);if ($result- num_rows 0) { while($row = $result- fetch_assoc()) { $adminkey = $row[ password //設$adminkey是管理員密碼,將從數據表中讀取的數據賦值進去$conn- close();
if( isset($_POST[ submit ]) $_POST[ submit ] = 登錄 ){ if($_POST[ psd ] == $adminkey){ //如果輸入的密碼和數據庫中的默認密碼相同,則進入系統 header( Location:system.php exit; }else{ script language= javascript //如果密碼錯誤,給出提示,返回登錄頁面 alert( password error window.location.href= index.php /script ?phpsystem.php a href= change.php >change.php
form action= changPwd.php method= post 請輸入新密碼: input type= password name= new_psd button type= submit name= submit value= 修改 >changePwd.php
?php if( isset($_POST[ submit ]) $_POST[ submit ] = 修改 ){ $nempas = $_POST[ new_psd $servername = localhost $username = 用戶名 $password = 密碼 $dbname = 數據庫名
?●防止通過url強行進入系統
比如,網站名是www.xxx.com,瀏覽者注意到這是某系統的登錄頁面后,可能一試 http://www.xxx.com/system.php 就繞過輸入密碼進入了系統。。。?!拘“准墶?/p>
可以加一個檢查頁面 checkInfo.php
先在密碼核查頁面 check.php 更改:
if( isset($_POST[ submit ]) $_POST[ submit ] = 登錄 ){ if($_POST[ psd ] == $adminkey){ session_start(); $_SESSION[ loginKey ] = 101; //101隨緣弄的,別的也行 // session 變量用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。Session 變量存儲單一用戶的信息,并且對于應用程序中的所有頁面都是可用的所以,可利用此,只有通過密碼驗證,才會生成$_SESSION[ loginKey ],從而在之后的頁面如system.php 的開頭加入檢查頁面 checkInfo.php ,檢查有沒有生成的$_SESSION[ loginKey ]就可以辨別有沒有繞過密碼強行進入header( Location:system.php exit; }else{ script language= javascript alert( password error window.location.href= index.php /script ?php?再寫checkInfo.php
?php session_start(); if(!isset($_SESSION[ loginKey ])){ script language= javascript alert( please land first window.location.href= index.php /script ?php?舉例
在system.php開頭加入:
?phpinclude checkInfo.php ? !doctype html html ...... .. .. .. /html注: session_start(); 啟動會話時,之前代碼不能有任何輸出!(如echo ... alert( .... )
建議直接扔到開頭
想了解更多,請移步至PHP 的PHP視頻教程和mysql視頻教程學習。
以上就是【PHP MySQL】實現修改密碼 + 防止通過url強行進入系統的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答