Heim  >  Artikel  >  Backend-Entwicklung  >  [PHP&MySQL] Passwort ändern + erzwungenen Zugriff auf das System über die URL verhindern

[PHP&MySQL] Passwort ändern + erzwungenen Zugriff auf das System über die URL verhindern

little bottle
little bottlenach vorne
2019-04-16 17:48:092896Durchsuche

●Verwenden Sie PHP+MySQL, um das Passwort zu ändern

Dieser Artikel beschreibt den spezifischen Code und den Betriebsprozess der Verwendung von PHP+MySQL, um das Passwort zu ändern.

Seite:

index.php-Anmeldeseite, geben Sie das Standardkennwort ein, um sich beim System anzumelden

überprüfen. PHP-Überprüfungsseite, bestehen Sie eine Datenbankabfrage, um zu überprüfen, ob das Passwort korrekt ist ——> Wenn es korrekt ist, geben Sie das System ein oder geben Sie einen Fehler ein, fordern Sie „Falsches Passwort“ auf und kehren Sie zur Systemseite

system.php zurück , mit dem Link „Passwort ändern“

change.php Geben Sie eine neue Passwort-Änderungsseite ein

changePwd.php Passwort-Änderungsseite

Schlüsselcode:

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

 

/************************请在上方修改管理员密码,默认是&#39;1&#39; *************************/


 if( isset($_POST["submit"]) && $_POST["submit"] = "登录"){
    if($_POST[&#39;psd&#39;] == $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>

.php ändern

<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=&#39;{$nempas}&#39; WHERE name=&#39;admin&#39; ");

  //使用UPDATE语句修改数据库中的password字段,并且新的值来自 change.php页面输入的新密码

   WHERE语句必须写,否则会更新所有的字段

  mysqli_close($conn);
  ?>
  <script language="javascript">
   alert("change success");
   window.location.href="system.php";
  </script>
  <?php
 }else{
  echo &#39;alert("change error");
 }
  ?>

●Verhindern Sie den erzwungenen Zugriff auf das System über die URL

Zum Beispiel den Namen der Website ist www.xxx.com, und der Betrachter bemerkt, dass es zu einem bestimmten System gehört. Nachdem Sie sich auf der Seite angemeldet haben, können Sie die Eingabe des Passworts umgehen und das System betreten, indem Sie http://www.xxx.com/system.php versuchen . . . . [Neulingsniveau]

Sie können eine Prüfseite hinzufügen checkInfo.php

Überprüfen Sie zuerst das Passwort Seite check.phpÄndern:

if( isset($_POST["submit"]) && $_POST["submit"] = "登录"){

   if($_POST[&#39;psd&#39;] == $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
   }
}

?>

Dann schreiben Sie checkInfo.php

<?php
 session_start();
 if(!isset($_SESSION["loginKey"])){    
  ?>
  <script language="javascript">
  alert("please land first");
  window.location.href="index.php";
  </script>
  <?php
 }

?>

Beispiel

Am Anfang von system.php hinzufügen:

<?phpinclude &#39;checkInfo.php&#39;;?>
<!doctype html>
<html>
...... .. .. ..
</html>

Hinweis: session_start(); Beim Starten einer Sitzung kann der vorherige Code keine Ausgabe haben! (Zum Beispiel echo '...'; alarm("....");)

Es wird empfohlen, es direkt an den Anfang zu werfen

Weitere Informationen finden Sie unter die PHP-Chinese-Website PHP-Video-Tutorial und MySQL-Video-Tutorial zum Lernen.

Das obige ist der detaillierte Inhalt von[PHP&MySQL] Passwort ändern + erzwungenen Zugriff auf das System über die URL verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen