|
автор: elenaki (28.09.2004 в 16:27) |
|
| у меня команда session_unset() стоит ниже формы, кликнув на submit которой юзер уходит
на другой сервер (в action стоит скрипт банка). значит, до команды session_unset() мой
скрипт не доходит? а "убить" сессию до отправки формы я не могу, т.к. там используются
переменные сессии. или она умрет сама? | |
|
|
|
|
|
|
|
для: elenaki
(28.09.2004 в 16:27)
| | Почему же не доходит? До конечного пользователя доходит полностью отработанная на сервере страница. В конце концов это легко проверить самому. | |
|
|
|
|
|
|
|
для: elenaki
(28.09.2004 в 16:27)
| | Сессии живут ограниченное время, определяемое директивой в php.ini:
session.cookie_lifetime = 3600
|
после чего они уничтожаются автоматически. | |
|
|
|
|
|
|
|
для: elenaki
(28.09.2004 в 16:27)
| | >session_unset()
Хм... Если вы работаете с сессиями через ассоциативные или суперглобальные массивы, то для разрегистрации сессионных переменных нужно использовать функцию unset, а не функции session_unset или session_unregister:
<?php
unset($_SESSION["username"]);
?>
|
Кроме того, применение этой функции (и ей аналогичных) означает просто разрегисррацию сеансовых переменных, но не разрушение сеанса. Для того, чтобы разрушить сеанс нужно вызвать функцию session_destroy. Т.е. сначала разрегистрируем переменные, а потом разрушаем сеанс:
<?php
unset($_SESSION["username"]); // разрегистрировали переменную
session_destroy(); // разрушаем сеанс
?>
|
| |
|
|
|
|
автор: elenaki (29.09.2004 в 11:24) |
|
|
для: Кузнецов М.В.
(28.09.2004 в 20:43)
| | у меня session_destroy(); не работал почему-то.
session_unregister("orderid");
session_destroy(); ничего не делало. т.е. переменная $orderid продолжала существовать
a session_unset(); убирает ее.
я, может, неправильно выразилась. мне главное, чтобы переменная $orderid переставала существовать после отсылки заказа и тот же покупатель, зайдя
снова в магазин, делал бы уже новый заказ. сейчас, когда у меня session_unset()
стоит после формы, переменная $orderid живет. и если я зайду снова в магазин,
то у меня в корзине будут и те товары, которые выбраны (и предполагается, что оплачены) ранее. | |
|
|
|