我已经在PHP中创建了一个更改密码脚本,它不起作用

use*_*306 0 php

我有以下代码,它将无法正常工作.我目前正在为系统开发一个简单的更改密码功能,并且无法使其正常运行.我想知道我是否忽略了一个非常简单的解决方案?

<?php    
    $con = mysql_connect("localhost","root");
    if (!$con) {
        die('Could not connect: ' . mysql_error());
    }

    $username = $_POST['userid'];  
    $password = $_POST['cpword'];
    $newpassword = $_POST['pword'];
    $confirmnewpassword = $_POST['pword2'];

    $result = mysql_query("SELECT username, pword FROM login WHERE username='$username'");

    if(!$result) {
        echo "The username entered does not exist!";
    } else
        if($password != mysql_result($result, 0)) {
            echo "Entered an incorrect password";
        }

    if($newpassword == $confirmnewpassword) {
        $sql = mysql_query("UPDATE login SET pword = '$newpassword' WHERE username = '$username'");     
    }

    if(!$sql) {
        echo "Congratulations, password successfully changed!";
    } else {
        echo "New password and confirm password must be the same!";
    }       
?>
Run Code Online (Sandbox Code Playgroud)

Ron*_*den 5

好吧,因为这个危险的脚本会感染互联网我建议你一些.

  1. 使用哈希来保存密码,没有人想要一个可见的密码.
  2. 永远不要告诉用户你的数据库中有什么,例如Entered an incorrect password通知告诉我我找到了一个用户名,这样我的暴力破解就容易了100倍.
  3. 人们在网上喊叫的是:STOP USING MYSQL走向PDO或者mysqli
  4. 最后但同样重要的是:有没有听说过mysql注射