最新公告
  • 欢迎您光临立业阁,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 【PHP&MySQL】实现修改密码 + 防止通过url强行进入系统_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("….");)

    建议直接扔到开头

    想了解更多,请移步至liyege的PHP视频教程mysql视频教程学习。

    以上就是【PHP&MySQL】实现修改密码 + 防止通过url强行进入系统的详细内容,更多请关注liyege.cn其它相关文章!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    • 1155会员总数(位)
    • 111856资源总数(个)
    • 6本周发布(个)
    • 0 今日发布(个)
    • 240稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    冀ICP备19022365号-1 百度地图

    侵权联系邮箱[email protected]

    立业阁(www.liyege.cn)免费提供wordpress主题模板、dedecms模板、帝国cms模板、小说网站源码、电影网站源码以及网络技术分享,建站源码,小说模板,电影模板,网赚教程,VPS推荐