首页 > 解决方案 > 如何获取已登录站点的用户的会话 ID

问题描述

我需要一些帮助来“获取”登录我网站的用户 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)

请有人告诉我这是否不是获取哪个用户已登录的正确方法,或者这只是一个简单的语法案例?

标签: phpmysqlsession

解决方案


您可以创建一个变量来存储 id 并将其传递到查询中以忽略此错误,如下所示

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

或者你可以这样做

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

推荐阅读