【PHP&MySQL】实现修改密码 + 防止通过url强行进入系统
发布:smiling 来源: PHP粉丝网 添加日期:2020-02-18 10:46:10 浏览: 评论:0
●使用PHP+MySQL实现修改密码
本文讲述了使用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("....");)
建议直接扔到开头.
Tags: PHP url强行进入系统
- 上一篇:装饰模式详解
- 下一篇:PHP访问数据缓存处理
相关文章
- ·PHP中通过Web 执行C/C++应用程序(2013-11-13)
- ·用PHP实现Ftp用户的在线管理(2013-11-13)
- ·用PHP自动把纯文本转换成Web页面(2013-11-13)
- ·用实例分析PHP5异常处理(2013-11-13)
- ·php5的simplexml解析错误(2013-11-13)
- ·PHP后门的隐藏技巧测试报告(2013-11-13)
- ·PHP缓存技术详谈(2013-11-27)
- ·利用PHP自定义错误处理器处理出错信息(2013-11-27)
- ·PHP作wap开发时遇到的问题(2013-11-27)
- ·php编写大型网站问题集(2013-11-27)
- ·php测试性能代码(2013-11-28)
- ·php 安全register globals设置为TRUE的危害(2013-11-28)
- ·XSLTProcessor 中 registerPHPFunctions 后无法调用 php 函数(2013-11-30)
- ·PHP中常用三种缓存技术(2013-11-30)
- ·新浪微博PHP版SDK的导致20007错误(2013-12-03)
- ·linux中phpMyAdmin错误提示Wrong permissions on configuration file, should no(2013-12-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)