簡體   English   中英

用PHP更改密碼

[英]change password with PHP

我是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>

這是我在change-pw.php文件中的代碼。

$servername = "*****";
$username = "****";
$password = "***";
$dbname = "***";

這是我使用config.php文件連接數據庫的方式。 我沒有在這里顯示服務器名稱,但是您可以了解我如何連接它。

我想要的是從數據庫中獲取密碼和用戶名並更改它的表單。

是的,我知道這里有一些挪威語,但這只是回音的。

我的問題:

當我用用戶名,密碼,新密碼和確認密碼寫的時候,我從if(!$ result)和if(!$ sql)獲取消息,但它不會更改密碼。 它表示用戶名不存在,密碼已更改。

有人看到我看不到的問題嗎?

我希望對這個腳本有正面和負面的評論,以便我可以改進。

謝謝!

<?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 5.x. 對於PHP 7,您需要更改為mysqli或PDO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM