用户ID未存储在会话中

时间:2014-07-24 00:39:36

标签: php html

<?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,有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

您希望$row['user_id']包含哪些内容?查看您的SELECT查询:

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

选择 user_id,因此您 user_id。您可能想要选择它:

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

此外,附注... 从不 以纯文本格式存储用户密码。 没有 有理由这样做。密码应为单向散列且 不可被任何人阅读 。请停止对您的用户严重不负责任。