Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP更改密码_Php_Mysql - Fatal编程技术网

使用PHP更改密码

使用PHP更改密码,php,mysql,Php,Mysql,我对PHP有点陌生,所以我仍处于学习阶段。 我希望我能在这里得到一些好的答案,也许有人能给我一些改进的建议 我知道事情可能会出错,但我还是在学习 我现在尝试为我的网站制作一个简单的“更改密码”表单 <?php include '../config.php'; $connection = mysqli_connect($servername, $username, $password, $dbname); if ($connection->connect_error){ die

我对PHP有点陌生,所以我仍处于学习阶段。 我希望我能在这里得到一些好的答案,也许有人能给我一些改进的建议

我知道事情可能会出错,但我还是在学习

我现在尝试为我的网站制作一个简单的“更改密码”表单

<?php
include '../config.php';
$connection = mysqli_connect($servername, $username, $password, $dbname);
if ($connection->connect_error){
    die("Connection failed: " . $conn->connect_error);
} else {
    echo "Connected successfully";
}
if(isset($_POST['submit']) && $_POST['submit'] = "submit"){
    $username = mysql_real_escape_string($connection, $_POST['username']); 
    $password = md5($connection, $_POST['password']);
    $newpassword = md5($connection, $_POST['newpassword']);
    $confirmnewpassword = md5($connection, $_POST['confirmnewpassword']);
    $result = mysql_query("SELECT password FROM users WHERE username='$username'");
    if(!$result) {
         echo "The username does not exist!";
     }
     else if($password != mysql_result($result, 0)){
          echo "The password is not correct!";
     }
     if($newpassword === $confirmnewpassword) {
          $sql = mysql_query("UPDATE users SET password = '$newpassword' WHERE username = '$username'");      
      }
      if(!$sql) {
          echo "Password has been changed!";
      }else{
        echo "Passwords do not match!";
     }
}     
?>
<form name="newprwd" action="" method="post">
    username :<input type="text" name="username" value=""><br>
    Passord :<input type="password" name="password" value=""><br>
    Nytt passord :<input type="password" name="newpassword" value=""><br>
    Bekreft Passord :<input type="password" name="confirmnewpassword" value=""><br>
    <input type="submit" name="submit" value="Endre passord"><br>
</form>
这就是我使用config.php文件连接数据库的方式。 我没有在这里显示服务器名称,但您可以看到我如何连接到它的图片

我想要的是从数据库中获取密码和用户名并进行更改的表单

是的,我知道这里有一些挪威词,但那只是给echo的

我的问题是:

当我输入用户名、密码、新密码和确认密码时,我会从if(!$result)和if(!$sql)获得消息,但它不会更改密码。 它表示用户名不存在,密码已更改

有人看到我看不到的问题吗

我希望对这个剧本有正面和负面的评论,这样我才能提高


谢谢

您使用的是哪个PHP版本
mysql\u query
从5.5.0开始就被弃用,并在PHP7中被删除。你应该考虑使用<代码> MySqLyQuase,或者至少切换到PDO(推荐)。此外,你调试了<代码> $结果<代码>吗?记录了什么样的错误消息?如果我没有弄错的话,我使用的是最新的PHP。mysqli通常是我们正在使用的。我没有尝试调试$result。我该怎么做呢?最新的PHP是7.x,所以它没有
mysql\u查询
函数。关于调试,只要
var\u dump($result)
就可以了。你真的不应该使用PHP来处理密码安全问题。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。您使用的是哪个PHP版本
mysql\u query
从5.5.0开始就被弃用,并在PHP7中被删除。你应该考虑使用<代码> MySqLyQuase,或者至少切换到PDO(推荐)。此外,你调试了<代码> $结果<代码>吗?记录了什么样的错误消息?如果我没有弄错的话,我使用的是最新的PHP。mysqli通常是我们正在使用的。我没有尝试调试$result。我该怎么做呢?最新的PHP是7.x,所以它没有
mysql\u查询
函数。关于调试,只要
var\u dump($result)
就可以了。你真的不应该使用PHP来处理密码安全问题。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
<?php
    $result = mysql_query("SELECT password FROM users WHERE username='$username'");
    if($row = mysql_fetch_row($result)) {
        if($password != $row[0]) {
            echo "The password is not correct!";
        }
        elseif($newpassword === $confirmnewpassword) {
            $sql = mysql_query("UPDATE users SET password = '$newpassword' WHERE username = '$username'");      
        }else{
            echo "Passwords do not match!";
        }
    }else{
        echo "The username does not exist!";
    }

?>
<?php
    $result = mysql_query("SELECT password FROM users WHERE username='$username'");
    if($row = mysql_fetch_row($result)) {
        if($password != $row[0]) {
            echo "The password is not correct!";
        }
        elseif($newpassword === $confirmnewpassword) {
            $sql = mysql_query("UPDATE users SET password = '$newpassword' WHERE username = '$username'");      
        }else{
            echo "Passwords do not match!";
        }
    }else{
        echo "The username does not exist!";
    }

?>