| |
автор: anbex (17.06.2006 в 22:52) |
|
| | Народ помогите, не получается передать сессии, всё вроде правильно сделал. У меня деневер, может у него какиенибудь особенности?
Вот я задаю:
<?php
session_start();
$_SESSION['error'] = "Ошибка";
echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php?id=error'></head></html>";
?>
|
Вот я получаю(ничего НЕ получаю, или получаю через раз):
<?
switch($id) {
case error:
session_start();
echo $_SESSION['error'];
break; }
?>
|
| |
| |
|
|
| |
|
|
| |
для: anbex
(17.06.2006 в 22:52)
| | | А функцию session_start() вы вызываете на каждой странице, где обращаетесь к суперглобальному массиву $_SESSION? | |
| |
|
|
| |
автор: anbex (18.06.2006 в 00:00) |
|
| |
для: cheops
(17.06.2006 в 23:46)
| | | Да, на каждой.
Извините, что отвлёк, всё самой сабой прошло... Мистика!!!
Всё теперь работает. | |
| |
|
|
| |
автор: anbex (18.06.2006 в 12:35) |
|
| |
для: anbex
(18.06.2006 в 00:00)
| | | А хотя сейчас опять глючит!
Через раз работает(через раз передаётся информация), сдесь ктото вроде писал уже, что тоже через 1 раз работает. | |
| |
|
|
| |
|
|
| |
для: anbex
(18.06.2006 в 12:35)
| | | Может
switch($_GET['id']) { | |
| |
|
|
| |
автор: anbex (19.06.2006 в 10:02) |
|
| |
для: RV
(18.06.2006 в 14:26)
| | | Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\Test.ru\www\guestbookher\index_gb.php:8) in z:\home\Test.ru\www\guestbookher\index_gb.php on line 14
Что может значить???? | |
| |
|
|
| |
|
|
| |
для: anbex
(19.06.2006 в 10:02)
| | | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12
http://www.softtime.ru/forum/ead.php?id_forum=1&id_theme=147
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
Вы можете также включить буфферизацию, если имеете доступ к конфигурационному файлу php.ini
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8484 | |
| |
|
|
| |
автор: anbex (19.06.2006 в 13:51) |
|
| |
для: cheops
(19.06.2006 в 11:44)
| | | Да, действительно. Чё то сначало не прочёл:
Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>(HTML). Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки. | |
| |
|
|
| |
автор: anbex (22.06.2006 в 09:59) |
|
| |
для: anbex
(19.06.2006 в 13:51)
| | | Если мне нужно удалить всю сессию то нужно использовать сначало для каждой переменной
unset($_SESSION['id']);
А потом только
session_destroy();
Или же стразу можно session_destroy(); | |
| |
|
|
| |
|
|
| |
для: anbex
(22.06.2006 в 09:59)
| | |
$_SESSION=array();
$_POST=array();
$_GET=array();
$_COOKIE=array();
|
Адаляет всё и безжалостно. | |
| |
|
|
|
| |
|
|
| |
для: anbex
(22.06.2006 в 09:59)
| | | Я бы тебе посоветовал на такие вопросы - чтоб не ждать долго ответа - орсто брать и пробовать. | |
| |
|
|
| |
|
|
| |
для: anbex
(22.06.2006 в 09:59)
| | | session_start();
session_destroy();
print "You have been logged out.";
At this point, the user's session file should have been cleared off of the server. The only way the session id might then be reused (causing the session file to reappear) is if the user's browser remains open and they initiate a request that calls session_start again. Since the browser will still have the session id cached, PHP may use the same id again and basically re-create the session file. This behavior is fine as long as you understand it.
Простой перевод:
Если вы сразу воспользовались функцией session_destroy()
а пользователь не закрыл браузер и опять зашёл на страничку где запускается функция session_start() , будет не хорошо. | |
| |
|
|