我试图在另一个页面中获取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
答案 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'];