Вопрос по $_SESSION

127
28 октября 2019, 22:20

Я хочу посмотреть, действительно ли при авторизации пользователем присваивается id данной сессии. Я подключил базу данных, подготовил запрос, проверил пароль на правильность и решил через print_r($_SESSION['user_id']) посмотреть id. Моя логика - если id есть, значит он был присвоен.

$_SESSION['user_id'] = htmlspecialchars($row['id']);
#code...
echo "Ваш id: " . print_r($_SESSION['user_id'])

Я вроде присваивал id сессии = id пользователя, но было показано, что id = 1, в то время, как в базе данных id у пользователя: 3. Что я сделал не так?

Если я что-то не так обьяснил, то лучше, наверное, показать исходный код:

session_start();
include '../db.php';
$login = strip_tags($_POST['login']);
$password = strip_tags($_POST['password']);
try {
    $stmt = $dbh->prepare("SELECT login, password FROM users"); 
$stmt->execute();
while ( $row = $stmt->fetch() ) { /
    $login_in_data = $row['login']; 
    $password_in_data = $row['password'];
    $name_in_data = $row['name'];
}
if ( !isset($login_in_data) ) {
    echo "Не получен логин!"; ?><br><br><?
}
} 
catch (exeption $e) {
echo $e->getMessage();
}
if ( isset($login) && isset($password) ) {
   $hashed_password = password_hash($_POST["password"],PASSWORD_DEFAULT);
$stmt = $dbh->prepare("SELECT * FROM users WHERE (`login`, `password`) = (:login, :hashed_password)");
$stmt->bindParam(':login', $login);     
$stmt->bindParam(':hashed_password', $hashed_password);
$row = $stmt->fetch();
$stmt->execute();
if ( (password_verify($password, $hashed_password) )) { 
    $_SESSION['user_id'] = htmlspecialchars($row['id']);
    echo "Вы вошли, как " . $login . " !";?> <br> <?php
    ?> <a href="/personalAccount.php">Личный кабинет</a> <br>
    <?php echo "Ваш id: " . print_r($_SESSION['user_id']) ; 
    $_SESSION['login'] = htmlspecialchars($row['login']); //htmlsp предотвр. XSS атаку
    $_SESSION['username'] = htmlspecialchars($row['name']);
} else {
    echo "Вы не вошли!";
}   
}

P.S. Если я уж в корне не правильно делаю - то как тогда стоит присвоить id сессии при авторизации пользователем?

READ ALSO
Не получается обойти каптчу

Не получается обойти каптчу

Хочу получить результаты из формы на странице https://rosreestrru/wps/portal/p/cc_ib_portal_services/online_request/

167
Генерация hash MCRYPT на nodejs для payeer

Генерация hash MCRYPT на nodejs для payeer

Подскажите как можно сделать такой hash на nodejs

128
Массив данных в базу данных php

Массив данных в базу данных php

у меня есть массив

132
Абстракция в контроллерах

Абстракция в контроллерах

Экспериментирую с созданием сайта-каталога с админ панелью на laravel 58

134