Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: LOGout
 
 автор: skazi   (25.11.2006 в 15:39)   письмо автору
 
 

А как сделать logout:
В сессии 2 переменные логин и пароль, как сделать выход из сессии?

   
 
 автор: aexb   (25.11.2006 в 16:08)   письмо автору
 
   для: skazi   (25.11.2006 в 15:39)
 

Скрипт, осуществляющий логаут должен содержать в себе функцию session_destroy(). Функция уничтожает с сервера идентификатор сессии. Если хочется, чтоб совсем наверняка, то можно сделать вот так:

<?
session_start
();
$_SESSION=array();
session_destroy();
?>

   
 
 автор: skazi   (25.11.2006 в 16:11)   письмо автору
 
   для: aexb   (25.11.2006 в 16:08)
 

Спасибо, вроде работает :)

   
 
 автор: aexb   (25.11.2006 в 16:15)   письмо автору
 
   для: skazi   (25.11.2006 в 16:11)
 

Для проверки можно вызывать session_id() в предыдущем скрипте.
<?
session_start
();
$sid=session_id();
echo 
$sid;
$_SESSION=array();
session_destroy();
?>
Каждый раз после уничтожения сессии $sid в этом скрипте должен меняться. Если он остается постоянным - значит что-то работает не так.

   
 
 автор: skazi   (25.11.2006 в 16:43)   письмо автору
 
   для: aexb   (25.11.2006 в 16:15)
 

а id сессии назначается автоматом?
т.е. с переходом от однеой страницы к другой(в обоих session_start();) переменная $sid будет меняться сама, да?

   
 
 автор: aexb   (25.11.2006 в 16:50)   письмо автору
 
   для: skazi   (25.11.2006 в 16:43)
 

Да, идентификатор одной сессии одного пользователя уникален и постоянен. Он назначается сервером и сохраняется на сервере. Существует время жизни сессии, которое начинается от момента первого session_start() пользователя. Время жизни можно менять в настройках сервера, обычно оно ~20 мин. Если по истечении срока пользователь не использует session_start(), то идентификатор автоматически удаляется.

Если мы храним в сессии переменные, необходимые для использования на сайте (например, форум), то каждый раз на новой странице нужно использовать session_start(). Идентификатор назначается только в 1 раз и при переходе не меняется. При session_destroy(), то есть логауте, id удаляется и в следующий раз назначается новый.

   
 
 автор: skazi   (25.11.2006 в 17:58)   письмо автору
 
   для: aexb   (25.11.2006 в 16:50)
 

Спасибо!
а как хранить переменные сессий PHP в MySQL?
хотя бы алгоритм покажите пожалуйста, а если можно то и скрипт заодно..

   
 
 автор: aexb   (25.11.2006 в 18:49)   письмо автору
 
   для: skazi   (25.11.2006 в 17:58)
 

Для чего Вы хотите сохранять сессионные переменные в MySQL? Можете на словах описать процесс?

   
 
 автор: skazi   (25.11.2006 в 18:56)   письмо автору
 
   для: aexb   (25.11.2006 в 18:49)
 

Мне самому интересно знать, взможно ли такое, многие скрипты пользуются такой функцией, например форум phpbb
А сессионные переменные можно сохранять например для защиты, при заходе на новую страницу сравниваются session id...если конечно такое возможно :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования