在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
●使用PHP+MySQL实现修改密码 页面:
关键代码: 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 变量用于存储关于用户会话(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开头加入:
<?php
include 'checkInfo.php'; ?> <!doctype html> <html> ...... .. .. ..
</html>
注: session_start(); 启动会话时,之前代码不能有任何输出!(如echo '...'; alert("....");)
建议直接扔到开头
|
2022-08-18
2022-08-16
2022-11-06
2022-08-18
2022-08-15
请发表评论