У меня проблемы с пониманием сессий PHP. Прежде всего, я сохраняю данные сеанса в базе данных, я использовал функцию PHP session_set_save_handler()
, чтобы определить это.
Как я понимаю, когда PHP сохраняет данные сеанса в БД, выглядит так:
Если я определю некоторые переменные сеанса, а затем выведу некоторый текст в браузер пользователя, я считаю, что данные сеанса не сохраняются в БД до тех пор, пока текст не выведен. Пожалуйста, посмотрите на этот бит кода:
$_SESSION['username'] = $username;
//check if session variable set
if($_SESSION['username'] != $username)
{
die('error...');
}
В коде оператор if возвращает false, поэтому die()
никогда не встречается. Также PHP не записывает данные сеанса в БД до тех пор, пока после оператора if. Чего я не понимаю, так это если данные сеанса еще не записаны в БД, как PHP сравнивает $_SESSION['username']
с $username
? $_SESSION['username']
сохраняется в памяти сервера до конца сценария, когда данные сеанса записываются в БД?
Спасибо за ваше время.