使用PHP和函数修改mysql表中的密码


Change Password in MySQLi table using PHP and functions

我今天很健忘,而且已经好几年没有完全回到编码中了,所以需要一些帮助!我正在尝试创建一个更改密码表单,通过会话数据验证登录(我已经完成了),并让用户通过两次输入新密码(一次确认)来更改密码,然后更新MySQL表。

我遇到的问题是我的更改密码功能在另一个文件中,我忘记了如何将其与不同页面上的表单链接起来;我该用post还是get呢?

我得到的代码是:
<form method="post" action="reset_password">
Password: <input type="password" name="password1" id="password1"/></br>
Confirm Password: <input type="password" name="password2" id="password2/></br>
            <input type="button" value="Change">
            <input type="submit" value="Change Password">

迄今为止的密码更改位;我需要添加一些方法从我的functions.php调用一个函数,并确认所写的密码是相同的。

在functions。php中我写了

function reset_password($mysqli) {
    if (isset($_SESSION['user_id'], 
              $_SESSION['username'], 
              $_SESSION['login_string'])) {
             $user_id = $_SESSION['user_id'];
        $login_string = $_SESSION['login_string'];
            $username = $_SESSION['username'];
        $user_browser = $_SERVER['HTTP_USER_AGENT'];
        if ($stmt = $mysqli->prepare("SELECT password, salt 
                                      FROM login_secure 
                                      WHERE id = ? LIMIT 1")) {
            // Bind "$user_id" to parameter. 
            $stmt->bind_param('i', $user_id);
            $stmt->execute();   // Execute the prepared query.
            $stmt->store_result();
            if ($stmt->num_rows == 1) {
                // If the user exists get variables from result.
                $stmt->bind_result($password, $salt);
                $stmt->fetch();
                $login_check = hash('sha512', $password . $user_browser);
                if ($login_check == $login_string) {
                    $new_password = hash('sha512', $password1 . $salt);
                    $insert_stmt = $mysqli->prepare("UPDATE login_secure SET password = ".$new_password." WHERE id = ".$user_id."");
                    $insert_stmt->execute();
                }}}}}

我还没能测试出来,因为我还没想过如何把它们联系在一起。有人知道吗,我的脑子老了;

<form method="POST" action="functions.php">
Password: <input type="password" name="password1" id="password1" /><br>
Confirm Password: <input type="password" name="password2" id="password2" /><br>
        <input type="submit" value="Change Password" />
</form>
下面是functions.php 的代码
<?php
session_start();
$user_id = $_SESSION['user_id'];
$password1 = $_POST['password1'];
$password2 = $_REQUEST['password2'];
include('../database_connection.php');
$sql = mysqli_query($connection, "SELECT password, salt 
                                  FROM login_secure WHERE id ='".$user_id."'");
while($row = mysqli_fetch_array($sql)){ $salt = $row['salt'];
$password = $password1;
$hash = md5($salt . $password);
mysqli_query($connection, "UPDATE login_secure SET password = '".$hash."' WHERE id='".$user_id."'");
}
?>