php首次登录系统强制修改密码,【PHP&MySQL】实现修改密码 防止通过url强行进入系统...

●使用PHP MySQL实现修改密码

本文讲述了使用PHP MySQL实现修改密码的具体代码,以及操作过程。

页面:

index.php 登陆页面,输入默认密码登陆系统

check.php 核查页面,通过查询数据库检测密码是否正确 ——> 正确,则进入系统 或 错误,提示“密码错误”,返回登录页面

system.php 系统页面,内含“修改密码”链接

change.php 输入新密码修改页面

changePwd.php 修改密码页面

关键代码:

index.php

请输入密码:

登录

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{

?>

alert("password error");

window.location.href="index.php";

}

}

?>

system.php

修改密码

change.php

请输入新密码:

修改

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);

?>

alert("change success");

window.location.href="system.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{

?>

alert("password error");

window.location.href="index.php";

}

}

?>

再写checkInfo.php<?php

session_start();

if(!isset($_SESSION["loginKey"])){

?>

alert("please land first");

window.location.href="index.php";

}

?>

举例

在system.php开头加入:<?phpinclude 'checkInfo.php';?>

...... .. .. ..

注: session_start(); 启动会话时,之前代码不能有任何输出!(如echo '...'; alert("....");)

建议直接扔到开头

想了解更多,请移步至jquery中文网的PHP视频教程和mysql视频教程学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值