php - 会话无法正常工作并返回null

时间:2018-03-17 17:42:55

标签: php web-services web

我试图在另一个页面中获取id我总是得到null我的代码在这里错了吗?以及如何解决它? **问题出在 - >

public function login($email, $password) {
        $db = new database(); //connection with database     
        $q = "select * from user where
                email='$email'
                 AND 
                password='$password'";
        $db->pQuery($q);
        $userSet = $db->fetchAll();
       // var_dump($userSet);die;
        if (!empty($userSet)) {
          //  session_start();
            $_SESSION["username"] = $email;//not null
            $_SESSION["userid"] = $userSet['id'];//null
            print_r( $_SESSION["userid"]);
           var_dump($_SESSION["userid"]);die;
            header("location:search.php");
            exit();
        } else {
            return false;
        }
    } 

在另一页:

<?php
session_start();
$id  = $_SESSION['userid'];//==null
echo $id;//null here


var_dump($id);//null here

1 个答案:

答案 0 :(得分:0)

因为您正在使用返回数组数组的fetchAll()

$userSet = $db->fetchAll();
if (!empty($userSet)) {
    $_SESSION["username"] = $email;
    $_SESSION["userid"] = $userSet[0]['id']; // <<< Add [0]

或使用fetch()代替fetchAll()

$userSet = $db->fetch();
if ($userSet) {
    $_SESSION["username"] = $email;
    $_SESSION["userid"] = $userSet['id'];