旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

【PHP&MySQL】完成修正暗码 + 防备经由过程url强行进入体系【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:95


导读:●运用PHP+MySQL完成修正暗码本文报告了运用PHP+MySQL完成修正暗码的细致代码,以及操作过程。页面:index.php上岸页面,输入默许暗码上岸体系...
●运用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("....");)

发起直接扔到开首

想相识更多,请移步至ki4网的PHP视频教程和mysql视频教程进修。

以上就是【PHP&MySQL】完成修正暗码 + 防备经由过程url强行进入体系的细致内容,更多请关注ki4网别的相干文章!

标签:PHPMySQLurl强行进入修改密码