簡體   English   中英

如何使用表單更新數據庫中的用戶密碼

[英]How to update a user's password in the database using a form

我已經編寫了這段代碼來更新用戶密碼,並且似乎是根據回顯來發布的,但是在嘗試登錄時,無論新密碼還是舊密碼都不起作用! 需要幫助,這是代碼:

if(isset($_POST['confirmReset'])){

    $q = "SELECT * FROM user WHERE email = '".$_POST['email']."'";

    $resObj = mysqli_query($conn, $q);
    $rowcount=mysqli_num_rows($resObj);
    //var_dump($rowcount);

    if ($rowcount == 1) {   

        $q = "UPDATE user SET password = '".md5($password)."' WHERE email = '".$_POST['email']."'";
        if (mysqli_query($conn, $q)) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . mysqli_error($conn);
        }

        $rowcount=mysqli_num_rows($resObj);
    } else {

    }

var_dump($_POST);
}

您必須定義$ password變量。

由於您的代碼比較精簡,也許輸入中包含密碼“ $ _POST ['confirmReset']”?

$password = $_POST['confirmReset'];

像那樣 :

if(isset($_POST['confirmReset'])) {
    $password = $_POST['confirmReset'];

    // Following the code ...

您從哪里獲取$ password的值?

if(isset($_POST['confirmReset'])){
$password = $_POST['password']; // Change this with the name of the POST variable.
$q = "SELECT * FROM user WHERE email = '".$_POST['email']."'";

$resObj = mysqli_query($conn, $q);
$rowcount=mysqli_num_rows($resObj);
//var_dump($rowcount);

if ($rowcount == 1) {   

$q = "UPDATE user SET password = '".md5($password)."' WHERE email = '".$_POST['email']."'";
if (mysqli_query($conn, $q)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
$rowcount=mysqli_num_rows($resObj);
} else {

}

要檢查密碼是否已更新,可以使用:

mysqli_affected_rows()

這將為您提供更新的行數。

單獨進行md5加密,然后再使用它

$v1 = $_POST['password'];
$v2 = md5($v1);

使用此$ v2更新SQL查詢中的密碼

Update tb_name set password = '".$v2."' where email = '".$email."'

暫無
暫無

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

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