PHP

Вопрос по сессиям php

Имею id сессии. Проверять авторизован ли пользователь полагаю нужно с помошью if isset( ???), но что писать вместо ???
У вас на сервере есть некий список пользователей (каждый пользователь да, однозначно определяется номером сессии).
Вы получаете от пользователя в заголовках его номер сессии и смотрите, есть ли этот номер сессии в вашем списке сессий пользователей.
Если он там есть, то с вероятностью 99% этот пользователь уже был у вас на сайте. (Но тут тоже могут быть тонкости, его сессия могла устареть, если пользователя не было сутки, к примеру, и его надо будет послать на повторное запрашивание пароля).
Если такой сессии нет у вас в списке сессий, то с вероятностью 99% это новый пользователь. Его вы вносите в свой список, отмечаете временнУю отметку, когда от него была в последний раз активность (чтобы потом в будущем узнать, не устарела ли сессия).

Про проверку авторизации пользователя.
Пользователь может быть вовсе не авторизован (как, например, здесь, в проекте Ответы можно заходить посмотреть вопросы, не регистрируясь в проекте).
Пользователь может быть зарегистрирован и авторизован на проекте (и тогда у вас на вашем проекте у него, например, могут появится новые возможности - например, ответить на вопрос или лайкнуть).

И еще вы путаете просто перечень посетителей вашего сайта с перечнем авторизованных пользователей. Это разные сущности.
Сергей Фёдоров
Сергей Фёдоров
79 801
Лучший ответ
Наличие сессии проверяй (никто не знает, как она у тебя создана)
AI
Alhazur Isaev
84 158
Ергали Раимкулов у меня $row['id'] - достает id пользователя, а session_id($row['id']) - создает определенный идентификатор сессии.
Ергали Раимкулов мне в принципе наличие сессии проверять же, а не конкретно по id? А ну да, логично. спасибо
я так делал:
if ( !isset($_SESSION['RegAktiv']) and isset($_COOKIE['ChezClab'])) {
require_once $_SERVER['DOCUMENT_ROOT'].'/bd.php';
$sql="SELECT `MyKey`,`mysesiya` FROM `My_BD`.`Id_Reg` WHERE `mysesiya`='".$_COOKIE['ChezClab']."'";
foreach ($pdo->query($sql) as $row) {
if ($row['MyKey']){$MyKey=$row['MyKey'];}
if ($row['mysesiya']){$mysesiya=$row['mysesiya'];}
If ($mysesiya==$_COOKIE['ChezClab'])
{
//сессия найдена авторизованного пользователя, твой код

}
}
Артур Серёгин
Артур Серёгин
2 479
Panda85_Ak . Подмены, как и sql-инъекций полагаю, просто не существует, а все пользователи милые душки?