使用php/mysql更新密码

使用php/mysql更新密码,php,mysql,passwords,Php,Mysql,Passwords,昨天我发布了一些代码,询问用户如何通过表单更新密码。看 但是在更新密码后,我无法通过android应用程序登录。所以我决定对forgotpassword.php文件做一点修改 <?php session_start(); require "../init.php"; ini_set('display_errors', 1); if(isset($_POST['update'])){ $email = $_POST['email']; $user_name = $_

昨天我发布了一些代码,询问用户如何通过表单更新密码。看

但是在更新密码后,我无法通过android应用程序登录。所以我决定对forgotpassword.php文件做一点修改

<?php
session_start();
require "../init.php";
ini_set('display_errors', 1);



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


    $email = $_POST['email'];
    $user_name = $_POST['user_name'];
    $password = $_POST['user_pass'];
    $passwordEncrypted = sha1($user_pass); 

    $confpassword = $_POST['confirm_pass'];
    $confPasswordEncrypted = sha1($confirmPass);  

    if($password !== $confpassword){
       echo "<script>alert('Passwords are not equal')</script>";
    }else{
        $select_query = "SELECT * FROM user_info";

        $run_select_query = mysqli_query($con,$select_query); 

        while ($row_post=mysqli_fetch_array($run_select_query)){

              $_SESSION['id'] = $row_post['id'];
              $user_id = $_SESSION['id'];
              $useremail = $row_post['email'];
              $username = $row_post['user_name'];

              var_dump($user_id);

            if($useremail == $email AND $username == $user_name){
                //echo "<script>alert('$useremail')</script>";
                //echo "<script>alert('$username')</script>";
                echo "<script>alert('$id')</script>";
                $update_posts = "UPDATE user_info SET user_pass='$passwordEncrypted',confirm_pass ='$confPasswordEncrypted'  
                WHERE $id='$_userid'";  

                $run_update = mysqli_query($con,$update_posts); 
                //var_dump($user_name);
            echo "<script>alert('Password Has been Updated!')</script>";
            }else{
             echo "<script>alert('No email or username was found')</script>";
            }

        }

    }

}
?>

where子句中的键入错误<代码>其中$id='$\u userid'”;


将更新查询的where子句更改为:
where$id='$user\u id'

where子句中的键入错误<代码>其中$id='$\u userid'”;


将更新查询的where子句更改为:
where$id='$user\u id'

更新您的选择查询:

$select_query = "SELECT * FROM user_info where email = '".$email."' and user_name = '".$username."' ";
然后检查mysqli_num_rows()。
如果大于0,则只执行更新查询并将数据放入会话中

此外,您的更新查询不正确。它应该是:

$update_posts = "UPDATE user_info SET user_pass='$passwordEncrypted',confirm_pass ='$confPasswordEncrypted'  
                WHERE $id='$userid'";

更新您的选择查询:

$select_query = "SELECT * FROM user_info where email = '".$email."' and user_name = '".$username."' ";
然后检查mysqli_num_rows()。如果大于0,则只执行更新查询并将数据放入会话中

此外,您的更新查询不正确。它应该是:

$update_posts = "UPDATE user_info SET user_pass='$passwordEncrypted',confirm_pass ='$confPasswordEncrypted'  
                WHERE $id='$userid'";

您的更新查询应如下所示:

$update_posts = "UPDATE user_info 
    SET
           user_pass='$passwordEncrypted',
           confirm_pass ='$confPasswordEncrypted' 
    WHERE id = $user_id";

您的更新查询应如下所示:

$update_posts = "UPDATE user_info 
    SET
           user_pass='$passwordEncrypted',
           confirm_pass ='$confPasswordEncrypted' 
    WHERE id = $user_id";

嗯。我已经更改了代码并使其生效。这就是我正在做的

1) 我运行一个select查询来检查用户是否已经注册。如果是,则更新密码并在其电子邮件中发送新密码

2) 如果没有,那么你会在我的android应用程序中得到一个json响应,说找不到用户电子邮件

3) 最后,用户可以使用更新的5位密码登录:)


好的。我已经更改了代码并使其生效。这就是我正在做的

1) 我运行一个select查询来检查用户是否已经注册。如果是,则更新密码并在其电子邮件中发送新密码

2) 如果没有,那么你会在我的android应用程序中得到一个json响应,说找不到用户电子邮件

3) 最后,用户可以使用更新的5位密码登录:)


检查代码时没有错误。为什么可以用1实现2个SQL语句(更新密码和用户匹配的位置-如果更改0行,则用户名或密码无效)。单轮sha1不足以进行密码哈希。请看这里:请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。检查代码时不会出错。为什么可以用1实现2个SQL语句(更新密码和用户匹配的位置-如果更改0行,则用户名或密码无效)。单轮sha1不足以进行密码哈希。请看这里:请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。