yok
Новичок
session had already been started вопрос вокруг повторного запуска сессии
Всем привет.
Среда:
Под авторизованного пользователя для доступа к определенным страницам создается сессия.
На каждой странице предусматривается выход пользователя из сессии и в случае наличия сессии ее поддержание:
-------------------------------------------------------------------
if( (isset($_GET['logout'])) && ($_GET['logout']=="now") ) {
session_start();
session_unset();
session_destroy();
}
if (isset($_REQUEST[session_name()])) {
//if( (isset($_REQUEST[session_name()])) && (!isset($_GET['out'])) ) {
session_start();
}
-----------------------------------------------------------------------------------
при error_reporting(E_ALL) наблюдается ситуация: САМ КОНФЛИКТ:
после выхода из сессии пользователя, фактический доступ закрывается, но если повторный вход осуществить то нотис : a session had been started-ignoring session_start()
Да, добавлю ясно что при авторизации страртуется сессия.
и конечно сессия страртуется не всегда и не для всех страниц.
Прошу реальной помощи, вероятно что ктото такую задачу решал, и в этой теме Бресь Сергей, чтото подобное решал, и аж в 2004 году, мож поможет разобраться. http://phpclub.ru/talk/showthread.php?s=&threadid=55083&perpage=20&highlight=session&pagenumber=1
А теперь мой один взгляд:
Когда на стороне сервера приходит запрос на логоаут, также и подтверждение $_REQUEST[session_name()], потом удаляются переменные сессии, и доступ пользователя уже закрывается под его переменными сессии, но если в этот момент уже после дестроя сессии на стороне сервера в скрипте обьявить переменную любую сессии, то эта переменная будет существовать.
Конечно как она туда попадет эта новая переменная сессии, не знаю, но это уже подвергает сомнению.
Это уже как расширение моего вопроса, вытекающего из того, что после дестроя сессии, по запросу f( (isset($_REQUEST[session_name()])) следующему ниже в сценарии она всеравно стартуется. Конечно уже без прежних переменных сессии????
Вот о таком кто мучался вопросом, прошу помощи.
Конечно если при повторной авторизации, перед вводом логина и отправкой, удалить куки с сессией, то нотиса не будет и будет все окей, (хотя тестировалось локально, надо проверить хост)
Всем хорошего дня.
По поводу новой переменной сессии вот код
error_reporting(E_ALL);
if (isset($_GET['out'])) {
session_start();
session_unset();
session_destroy();
}
$_SESSION['name']="newname"; // вот обьявляю новую после дестроя и она будет log не будет потому что дестрой предыдущей серии.
echo "<hr>";
echo $_SESSION['log'];
echo $_SESSION['name'];
?>
Всем привет.
Среда:
Под авторизованного пользователя для доступа к определенным страницам создается сессия.
На каждой странице предусматривается выход пользователя из сессии и в случае наличия сессии ее поддержание:
-------------------------------------------------------------------
if( (isset($_GET['logout'])) && ($_GET['logout']=="now") ) {
session_start();
session_unset();
session_destroy();
}
if (isset($_REQUEST[session_name()])) {
//if( (isset($_REQUEST[session_name()])) && (!isset($_GET['out'])) ) {
session_start();
}
-----------------------------------------------------------------------------------
при error_reporting(E_ALL) наблюдается ситуация: САМ КОНФЛИКТ:
после выхода из сессии пользователя, фактический доступ закрывается, но если повторный вход осуществить то нотис : a session had been started-ignoring session_start()
Да, добавлю ясно что при авторизации страртуется сессия.
и конечно сессия страртуется не всегда и не для всех страниц.
Прошу реальной помощи, вероятно что ктото такую задачу решал, и в этой теме Бресь Сергей, чтото подобное решал, и аж в 2004 году, мож поможет разобраться. http://phpclub.ru/talk/showthread.php?s=&threadid=55083&perpage=20&highlight=session&pagenumber=1
А теперь мой один взгляд:
Когда на стороне сервера приходит запрос на логоаут, также и подтверждение $_REQUEST[session_name()], потом удаляются переменные сессии, и доступ пользователя уже закрывается под его переменными сессии, но если в этот момент уже после дестроя сессии на стороне сервера в скрипте обьявить переменную любую сессии, то эта переменная будет существовать.
Конечно как она туда попадет эта новая переменная сессии, не знаю, но это уже подвергает сомнению.
Это уже как расширение моего вопроса, вытекающего из того, что после дестроя сессии, по запросу f( (isset($_REQUEST[session_name()])) следующему ниже в сценарии она всеравно стартуется. Конечно уже без прежних переменных сессии????
Вот о таком кто мучался вопросом, прошу помощи.
Конечно если при повторной авторизации, перед вводом логина и отправкой, удалить куки с сессией, то нотиса не будет и будет все окей, (хотя тестировалось локально, надо проверить хост)
Всем хорошего дня.
По поводу новой переменной сессии вот код
error_reporting(E_ALL);
if (isset($_GET['out'])) {
session_start();
session_unset();
session_destroy();
}
$_SESSION['name']="newname"; // вот обьявляю новую после дестроя и она будет log не будет потому что дестрой предыдущей серии.
echo "<hr>";
echo $_SESSION['log'];
echo $_SESSION['name'];
?>
