php - 在 session 中添加 ID?

标签 php mysql authentication

我的登录和 session 正常,但我也希望能够调用用户名的 ID,但我不确定如何执行此操作。任何帮助都会很棒!

因此,我正在尝试添加 $_SESSION['id'] = $id; 但我不确定要添加什么。

<?php
require_once 'config.php';

$username = $password = "";
$username_err = $password_err = "";


if($_SERVER["REQUEST_METHOD"] == "POST"){



if(empty(trim($_POST["username"]))){
    $username_err = 'Please enter username.';
} else{
    $username = trim($_POST["username"]);
}


    $password_err = 'Please enter your password.';
} else{
if(empty(trim($_POST['password']))){
    $password = trim($_POST['password']);
}


if(empty($username_err) && empty($password_err)){

    $sql = "SELECT username, password FROM users WHERE username = ?";

    if($stmt = mysqli_prepare($link, $sql)){

        mysqli_stmt_bind_param($stmt, "s", $param_username);


        $param_username = $username;


        if(mysqli_stmt_execute($stmt)){

            mysqli_stmt_store_result($stmt);


            if(mysqli_stmt_num_rows($stmt) == 1){                    

                mysqli_stmt_bind_result($stmt, $username, $hashed_password);
                if(mysqli_stmt_fetch($stmt)){
                    if(password_verify($password, $hashed_password)){

                        session_start();
                        $_SESSION['username'] = $username;      
                        header("location:app.php");
                    } else{

                        $password_err = 'The password you entered was not valid.';
                    }
                }
            } else{

                $username_err = 'No account found with that username.';
            }
        } else{
            echo "Oops! Something went wrong. Please try again later.";
        }
    }


    mysqli_stmt_close($stmt);
}


mysqli_close($link);
}
?>

最佳答案

将 ID 添加到查询中,假设您有一个 ID 列。您需要它来从数据库中获取 ID。

$sql = "SELECT username, password, id FROM users WHERE username = ?";

改变绑定(bind)结果。 BIND 结果是变量被赋值的地方。

mysqli_stmt_bind_result($stmt, $username, $hashed_password, $id);

然后在密码验证部分获取ID:

session_start();
$_SESSION['username'] = $username;   
$_SESSION['id'] = $id; 
header("location:app.php");

关于php - 在 session 中添加 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48374324/

相关文章:

php - 使代码更高效,减少复制粘贴

php - 在 Laravel 中使用 redis 作为队列驱动程序的作业失败表

php - MYSQL SELECT Group By 语句

java - 如何在 Java EE 应用程序中添加 "Disable User"管理功能?

java - 当您关闭应用程序时,CookieManager 会丢失 cookie 吗?

android - Firebase 不发送 OTP

php - 拉维尔 5 : Fatal error: Class 'TestCase' not found in

php - 如何在上传到数据库之前在php中更改图像文件名

php - PHP-api 中的 Sphinx avg 函数

php - Microsoft SQL 链接的 MySQL 服务器 - 无法从 PHP 查询