У меня есть четыре страницы до сих пор:Session, кажется, исчезает после заголовка перенаправления
index.php
login.php
setsessionconfig.php
account.php
фон:
Когда я нажимаю логин кнопка/facebook из индекса ж он берет меня войти .php, который, если пользователь уже зарегистрирован на сайте, он не просматривает сайт facebook, он просто продолжается. Login.php тянет информацию, необходимую для сессии, то заголовок перенаправляет setsessionconfig.php который имеет код ниже:
login.php имеет 5-секундную задержку для загрузки визуального затем перенаправляет на ...
header("refresh:5;url=".URLBASE."/setsessionconfig.php?uid=".$uid."&email=".$email);
setsessionconfig.php
$uid = isset($_GET['uid']) ? $_GET['uid'] : "";
$email = isset($_GET['email']) ? $_GET['email'] : "";
if($uid != "" && $email != "") {
session_start();
$_SESSION[SESSION_UID] = $uid;
$_SESSION[SESSION_EMAIL] = $email;
$_SESSION[SESSION_IS_LOGGEDIN] = 1;
header("Location: account");
}
Проблема
Когда setsessionconfig.php перенаправляет на account.php, он проверяет, вошли ли пользователи в систему через глобальную переменную SESSION_UID, затем отображает информацию о пользователе ИЛИ отображает текст «вы не вошли в систему». Независимо от того, что я делаю, я думаю, что заголовок, перенаправляемый на account.php, уничтожает переменные сеанса.
Я даже проверил, был ли сеанс доступен со следующим кодом в account.php.
function is_session_started()
{
if (php_sapi_name() !== 'cli') {
if (version_compare(phpversion(), '5.4.0', '>=')) {
return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
} else {
return session_id() === '' ? FALSE : TRUE;
}
}
return FALSE;
}
if (is_session_started() === FALSE)
echo "<script>console.log('FALSE');</script>";
else
echo "<script>console.log('TRUE - ".session_id()."');</script>";
К сожалению, эта часть фактически возвращает значение TRUE и идентификатор сеанса ... Так я вроде застрял, потому что я никогда не имел этот вопрос с сессии до ...
Это не является допустимым заголовок переадресации. // Вы проверили, правильно ли прошел идентификатор сеанса? – CBroe