本文报告了运用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 = "数据库名"; // 建立衔接 $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("....");)
发起直接扔到开首
想相识更多,请移步至ki4网的PHP视频教程和mysql视频教程进修。
以上就是【PHP&MySQL】完成修正暗码 + 防备经由过程url强行进入体系的细致内容,更多请关注ki4网别的相干文章!