如何获取已登录网站的用户的会话ID

时间:2019-03-31 16:49:53

标签: php mysql session

我需要一些帮助来“获取”登录我网站的用户的ID。我实质上有一个用户仪表板,我只想显示该特定用户的详细信息。有人可以告诉我我走的路是否正确以及做错了什么。

因此,在仪表板页面上(用户登录后将登陆该页面),我将其显示在页面顶部:

$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = $_SESSION['id']";

然后在每个页面的标题中,我都有这个:

<?php
    session_start();
    require "includes/dbh.inc.php";
?>

然后在我的登录脚本中,我有:

$_SESSION['id'] = $row['idUsers']; //User ID
$_SESSION['uid'] = $row['uidUsers']; //Username
$_SESSION['email'] = $row['emailUsers']; //Users Email

因此,我认为,通过调用仪表板页面顶部的$_SESSION['id'],它将仅获取谁登录,但是我得到的错误是:

语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),期望为'-'或标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

请问有人告诉我这不是获取哪个用户登录的正确方法还是仅仅是一种简单的语法?

2 个答案:

答案 0 :(得分:2)

您可以创建一个变量来存储id并将其传递给查询,以忽略此错误,例如

$id =  $_SESSION['id'];
$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = $id";

或者您可以这样做

$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = ".$_SESSION['id'].'"';

答案 1 :(得分:1)

我认为您的sql查询有问题。

当您使用关联数组havin键作为字符串时,应将其与'。'连接。操作员。不能像简单变量一样直接在双引号中使用。

您应使用

之类的查询

$uid = $_SESSION['id'];

$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = $uid";

$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = ".$_SESSION['id'];