как получить идентификатор сеанса пользователя, который зашел на сайт - PullRequest
0 голосов
/ 31 марта 2019

Мне нужна некоторая помощь для получения идентификатора пользователя, который зашел на мой сайт.По сути, у меня есть панель пользователя, на которой я хочу показать только детали конкретного пользователя.Может ли кто-нибудь сказать мне, если я нахожусь на правильном пути и что я сделал неправильно.

Итак, на странице панели инструментов, где пользователи попадают после входа в систему, у меня это вверхустраницы:

$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 ]

2 голосов
/ 31 марта 2019

Вы можете создать переменную для хранения идентификатора и передать ее в запросе, чтобы игнорировать эту ошибку следующим образом

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

Или вы можете сделать это

$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = ".$_SESSION['id'].'"';
1 голос
/ 31 марта 2019

Я думаю, что проблема в вашем sql запросе.

Когда вы используете в качестве строки ключ ассоциативного массива havin key, вы должны объединить его с '.' оператор. Его нельзя использовать в двойных кавычках напрямую, как простые переменные.

Вы должны использовать запрос как


$uid = $_SESSION['id'];

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

Или

$query = "SELECT * FROM `checkPointMod` WHERE `idUsers` = ".$_SESSION['id'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...