您好,登錄后才能下訂單哦!
本文主要給大家介紹通過PHP&MySQL成功實現修改密碼 + 防止通過url強行進入系統詳細步驟,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下通過PHP&MySQL成功實現修改密碼 + 防止通過url強行進入系統詳細步驟吧。
頁面:
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 = "數據庫名"; // 創建連接 $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } $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(); /************************請在上方修改管理員密碼,默認是'1' *************************/ 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> <?php } } ?> system.php <a href="change.php" class="chang">修改密碼</a>
change.php
<form action="changPwd.php" method="post" > 請輸入新密碼:<input type="password" name="new_psd"> <button type="submit" name="submit" value="修改" class="btn "/>修改</button> </form>
changePwd.php
<?php if( isset($_POST["submit"]) && $_POST["submit"] = "修改"){ $nempas = $_POST["new_psd"]; $servername = "localhost"; $username = "用戶名"; $password = "密碼"; $dbname = "數據庫名"; // 創建連接 $conn = new mysqli($servername, $username, $password, $dbname); // Check connection mysqli_query($conn,"UPDATE admin SET password='{$nempas}' WHERE name='admin' "); //使用UPDATE語句修改數據庫中的password字段,并且新的值來自 change.php頁面輸入的新密碼 WHERE語句必須寫,否則會更新所有的字段 mysqli_close($conn); ?> <script language="javascript"> alert("change success"); window.location.href="system.php"; </script> <?php }else{ echo 'alert("change error"); } ?>
●防止通過url強行進入系統
比如,網站名是www.xxx.com,瀏覽者注意到這是某系統的登錄頁面后,可能一試 http://www.xxx.com/system.php 就繞過輸入密碼進入了系統。。。。【小白級】
可以加一個檢查頁面 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&MySQL成功實現修改密碼 + 防止通過url強行進入系統詳細步驟,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。