在登录脚本中放置password_verify的位置?

在登录脚本中放置password_verify的位置?

另一个晚上,另一个问题!

我创建了一个登录页面,如果密码是纯文本,它可以正常工作。

我遇到的问题是我的注册表单使用password_hash为表输入加密密码。

我目前的脚本如下。

注册脚本

$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

登录脚本

<?php
session_start();
    if(isset($_POST['email'], $_POST['password'])){
        require('../../../private_html/db_connection/connection.php');
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $query = $conn->prepare("SELECT * FROM user_accounts WHERE email=:email AND password=:password");
        $query->bindParam(':email', $_POST['email']);
        $query->bindParam(':password', $_POST['password']);
        $query->execute();

        if($row = $query->fetch()){
            $_SESSION['email'] = $row['email'];
            $_SESSION['first_name'] = $row['first_name'];
            header("Location: ../../myaccount/myaccount.php");
        }
        else {header("Location:../../login/login.php ");}
    }?>

我对这个有几个问题:

  1. password_verify在哪里放入登录脚本?

  2. $_SESSION['xxx'] = $row['xxx'];在“我的帐户”页面上不必输入多个来显示用户详细信息,如何使用$results = $stmt->fetch(PDO::FETCH_ASSOC);我读过的方法?

提前谢谢了,

CyrilWalrus


PIPIONE
浏览 1143回答 2
2回答

郎朗坤

$query&nbsp;=&nbsp;$conn->prepare("SELECT&nbsp;*&nbsp;FROM&nbsp;user_accounts&nbsp;WHERE&nbsp;email=?");$query->execute([$_POST['email']]);if($row&nbsp;=&nbsp;$query->fetch()&nbsp;&&&nbsp;password_verify($_POST['password'],&nbsp;$row['password'])){ &nbsp;&nbsp;&nbsp;&nbsp;$_SESSION['user']&nbsp;=&nbsp;$row;
打开App,查看更多内容
随时随地看视频慕课网APP