●使用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开头加入:
<?php
include 'checkInfo.php';
?>
<!doctype html>
<html>
...... .. .. ..
</html>
 
注: session_start(); 启动会话时,之前代码不能有任何输出!(如echo '...';    alert("....");)
建议直接扔到开头

使用PHP、MySQL实现修改密码 + 防止通过url强行进入系统的更多相关文章

  1. win7下安装mysql后修改密码

    mysql的安装教程网上很多,此处不过多介绍,个人觉得下面这篇教程是比较好的,一步到位.MySQL 5.7.9 ZIP 免安装版本配置过程_百度经验  http://jingyan.baidu.com ...

  2. mysql数据库修改密码

    更改MySQL用户密码 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password(' ...

  3. MySQL如何修改密码

    以下几种方法可供选择 第一种方式: 最简单的方法就是借助第三方工具Navicat for MySQL来修改,方法如下: 1.登录mysql到指定库,如:登录到test库. 2.然后点击上方“用户”按钮 ...

  4. 本地navicate for mysql怎么修改密码?

    1.以前在本地设置sql库密码,就是在本地新建数据库的时候就输入,怎么也链接不上,原来是新建数据库的时候不能输入密码,需要在内部修改. 2. 打开mysql user表 3. 打开mysql user ...

  5. 转:MySQL如何修改密码

    转:https://www.cnblogs.com/yang82/p/7794712.html. 第一种方式: 最简单的方法就是借助第三方工具Navicat for MySQL来修改,方法如下: 1. ...

  6. 【shell 每日一练6】初始化安装Mysql并修改密码

    一.简单实现mysql一键安装 参考:[第二章]MySQL数据库基于Centos7.3-部署 此脚本前提条件是防火墙,selinux都已经设置完毕: [root@web130 ~]# cat Inst ...

  7. mysql中修改密码的方式

    参考地址:https://www.cnblogs.com/yang82/p/7794712.html mysql中修改用户密码的方式: 最简单的方法就是借助第三方工具Navicat for MySQL ...

  8. linux下安装mysql并修改密码

    删除已有mysql并重新安装mysql 查看是否已安装过mysql rpm -qa |grep -i mysql 2.移除安装的包 (在之前如果有启动mysql最好关掉服务) 使用rpm –ev 包名 ...

  9. MySQL之--修改密码

    1.在Mac上安装MySQL会随机生成一个临时密码,如下: --24T02::.004376Z [Note] A temporary password is generated for root@lo ...

随机推荐

  1. 1042. Shuffling Machine (20)

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  2. C++回顾day01---<const常量重点>

    一:定义常整型数 const int a;(或者int const a;)  不涉及指针 不可改变值(也不可通过指针修改) 二:定义一个指向常整型数的指针 const int* c;   可改指针指向 ...

  3. JAVA核心技术I---JAVA基础知识(格式化相关类)

    一:格式化相关类 (一)java.text包java.text.Format的子类 –NumberFormat:数字格式化,抽象类 DecimalFormat –MessageFormat:字符串格式 ...

  4. Linux记录-shell实现脚本监控服务器及web应用

    1.apache web 服务器 1 2 3 4 5 6 7 8 9 10 !/bin/bash # 表示请求链接3秒钟,不要返回的测试数据 nc -w 3 localhost 80 &> ...

  5. Hadoop记录-Ganglia监控HDFS和HBase指标说明

    HDFS相关 datanode相关 参数 解释 dfs.datanode.blockChecksumOp_avg_time 块校验平均时间 dfs.datanode.blockChecksumOp_n ...

  6. MongoDB 入门篇

    1.1 数据库管理系统 在了解MongoDB之前需要先了解先数据库管理系统 1.1.1 什么是数据? 数据(英语:data),是指未经过处理的原始记录. 一般而言,数据缺乏组织及分类,无法明确的表达事 ...

  7. Shuttle 学习

    见  http://blog.csdn.net/liu765023051/article/details/38521039

  8. mssql的 for xml path 与 mysql中的group_concat类似MSSQL For xml Path

    /****** Script for SelectTopNRows command from SSMS ******/ SELECT D_ID,[D_Name] as Name FROM [LFBMP ...

  9. Linux环境变量总结

    现在每天测试到时候会与Linux打交道,自然也会用到环境变量了.看了网上几篇文章,结合自己到实践和看法,总结以下Linux的环境变量吧.一.什么是环境变量?环境变量相当于给系统或用户应用程序设置的一些 ...

  10. try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}}引发的惨案

    如题,ajax请求报错:try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}}引发的惨案 要么是404,要么是40 ...