●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>
changeP wd .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 으아악
예를 들어system.php 시작 부분에 추가:
<?php session_start(); if(!isset($_SESSION["loginKey"])){ ?> <script language="javascript"> alert("please land first"); window.location.href="index.php"; </script> <?php } ?>
참고: session_start(); 세션을 시작할 때 이전 코드는 어떤 출력도 가질 수 없습니다! (예: echo '...'; Alert("....");)
처음에 직접 던지는 것이 좋습니다
자세한 내용을 알고 싶다면
PHP 동영상 튜토리얼을 참조하세요.및 mysql(PHP 중국어 웹사이트) 비디오 튜토리얼 배우기.
위 내용은 [PHP&MySQL] 비밀번호 수정 + URL을 통한 시스템 강제 진입 방지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!