Php 用户id未存储在会话中

Php 用户id未存储在会话中,php,html,Php,Html,当有人登录时,它只存储用户名而不存储id。有人能帮我吗。您希望$row['user\u id']包含什么?查看您的选择查询: <?php if(isset($_POST['username'], $_POST['password'])){ require '../connect.php'; $query = $conn->prepare("SELECT username, password FROM users WHERE username=:username AN

当有人登录时,它只存储用户名而不存储id。有人能帮我吗。

您希望
$row['user\u id']
包含什么?查看您的
选择
查询:

<?php
if(isset($_POST['username'], $_POST['password'])){
    require '../connect.php';

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

    if($row = $query->fetch()){
        $_SESSION['user_id'] = $row['user_id'];
        $_SESSION['username'] = $row['username'];
        header("Location: ../index.php");
     } 
  }
?>
您没有选择
用户id
,因此您没有
用户id
。您可能要选择它:

SELECT username, password FROM users WHERE username=:username AND password=:password

还有,旁注从不以纯文本形式存储用户密码。没有任何理由这样做。密码应该是单向散列的,任何人都不可读。请停止对用户不负责任。

session\u start()加载?如果没有,请不要这样做。当使用会话时,它是必需的,并且必须位于使用会话的所有页面内。PSA;会话不是started@DarylGill通常我会同意,但OP表明用户名已成功存储在会话中。这表明会话是在发布的代码之外启动的。
SELECT user_id, username, password FROM users WHERE username=:username AND password=:password