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

Форум PHP

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

 

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

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

тема: порядок выполнения команд в скрипте PHP
 
 автор: elenaki   (28.09.2004 в 16:27)
 
 

у меня команда session_unset() стоит ниже формы, кликнув на submit которой юзер уходит
на другой сервер (в action стоит скрипт банка). значит, до команды session_unset() мой
скрипт не доходит? а "убить" сессию до отправки формы я не могу, т.к. там используются
переменные сессии. или она умрет сама?

   
 
 автор: Igorek   (28.09.2004 в 16:52)   письмо автору
 
   для: elenaki   (28.09.2004 в 16:27)
 

Почему же не доходит? До конечного пользователя доходит полностью отработанная на сервере страница. В конце концов это легко проверить самому.

   
 
 автор: cheops   (28.09.2004 в 17:01)   письмо автору
 
   для: elenaki   (28.09.2004 в 16:27)
 

Сессии живут ограниченное время, определяемое директивой в php.ini:
session.cookie_lifetime = 3600

после чего они уничтожаются автоматически.

   
 
 автор: Кузнецов М.В.   (28.09.2004 в 20:43)   письмо автору
 
   для: 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 живет. и если я зайду снова в магазин,
то у меня в корзине будут и те товары, которые выбраны (и предполагается, что оплачены) ранее.

   
Rambler's Top100
вверх

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