2012-04-20 4 views
2

Я пытаюсь реализовать простой механизм входа и выхода из системы. Когда пользователь входит в систему, я создаю сеанс, используя session_start(). и после выхода из системы я звонюsession_start() генерирует один и тот же идентификатор сеанса каждый раз

session_unset(); 
session_destroy(); 

, но проблема в том, что после выхода в следующий раз, если вы снова войдете в систему. the session_id() такой же как предыдущий. Независимо от того, сколько я делаю session_destroy(), session_id() всегда то же самое. Означает ли это, что session_destroy() не работает? Или есть еще одна причина?

ответ

5

Изменить

session_unset(); 
session_destroy(); 

Для

session_start(); 
session_destroy(); 

Как с кодом сессии на самом деле не разрушается.

3

http://php.net/session_destroy

session_destroy() в основном делает

$_SESSION = array(); 

, но оставляет куки сессии, и идентификатор сеанса хранится в нем, неповрежденными. Вы должны вручную отключить файл cookie с вызовом setcookie() или использовать session_regenerate_id(), чтобы создать новый идентификатор, который будет создан.