更新密码选项不在数据库中更新


Update Password option not updating in DB

尝试设置一个更新密码功能,一旦你登录并进入个人资料页面,我一直在玩它,但没有任何工作,我没有任何错误,但它不更新数据库。

<?php
if(isset($_POST['submit'])){
$newpassword = $_POST['password'];
if(empty($newpassword)) {
    echo '<p>Field Empty!</p>';
} else {
$mysqli->query("UPDATE password FROM users WHERE password='$newpassword'");
echo "Updated Successfully"
}
}
 ?>

据我所知,你的查询是错误的。

您需要添加想要更新的行的ID。您应该将其存储在会话中。

<?php
if(isset($_POST['submit'])){
$newpassword = $_POST['password'];
if(empty($newpassword)) {
    echo '<p>Field Empty!</p>';
} else {
$mysqli->query("UPDATE Users SET password='$newpassword' WHERE ID=?");
echo "Updated Successfully"; 
}
}
 ?>

我要做的改变,你有一些遗漏的分号,你需要检查原始帖子的密码。

  <?php
    if(isset($_POST['submit']) && isset($_POST['password'])){
        $newpassword = $_POST['password'];
        $mysqli->query("UPDATE Users SET password='$newpassword' WHERE ID=?");
        echo "Updated Successfully";
    }
    else {
        echo '<p>The password field is not filled in.</p>';
    }
   ?>

我讨厌不安全的页面。这里有一种更安全的方法。它可能有我没有测试的错误。

<?php

        // configuration
        $dbhost     = "localhost";
        $dbname     = "test";
        $dbuser     = "root";
        $dbpass     = "admin";
        // database connection
        $conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
    if(isset($_POST['submit']) && isset($_POST['password'])){

        // new data
        $UserID = $_SESSION['UserID'];
        $Password = $_POST['password'];
        // query
        $sql = "UPDATE Users SET password=? WHERE ID=?";
        $q = $conn->prepare($sql);
        $q->bindParam(1, $UserID);
        $q->bindParam(2, $Password);
        $q->execute(array($title,$author,$id));
    }
    else {
        echo '<p>The password field is not filled in.</p>';
    }
?>