|
|
|
| На первой странице такой код:
<?php
session_start();
$novo = $_SESSION['novo'];
$ksex = "sex" . $novo;
$sex = @$_POST[$ksex];
$_SESSION['sex'] = $sex;
//echo "SEX= $sex "; // Для настройки
//die; // Для настройки
header('Location: tst.htm');
exit;
| Информация в переменную $sex поступает - это я проверил.
А на той странице, на которую осуществляется переход, установлен такой код:
<?php
session_start();
ob_start();
$sex = $_SESSION['sex'];
echo "<br>sex= $sex";
?>
| И переменной $sex уже нет...
Куда же она могла подеваться? | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2009 в 22:03)
| | Ну как же нет? Вы же начали буфферизацию, так почему не закончили?
<?php
session_start();
ob_start();
$sex = $_SESSION['sex'];
echo $sex;
$buffer = ob_get_contents();
ob_end_clean();
echo "<br>sex= $buffer";
?>
|
| |
|
|
|
|
|
|
|
для: Николай2357
(18.01.2009 в 22:26)
| | Нет, не заработало!!!!!!
Тут какая-то мистика: аналогичные конструкции использую и на других страницах - там и сейчас все работает.
В каких случаях сессия может не работать?
Вот для примера я добавляю в первый файл
$_SESSION['flag'] = "flag" ;
| , а во втором файле убираю вообще все и пишу
<?php
session_start();
ob_start();
$flag = $_SESSION['flag'];
echo "<br>flag $flag ";
| И не передается информация! | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2009 в 22:36)
| | переменную из кавычек вынеси - заработает
echo "<br>sex= ".$buffer;
|
| |
|
|
|
|
|
|
|
для: Рома
(18.01.2009 в 22:50)
| | На мой взгляд, это идентичное выражение...
Во всяком случае, всё равно не работает... | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2009 в 22:56)
| | а на мой взгляд это абсолютно разные вещи
и
echo "<br>sex= ".$buffer;
|
| |
|
|
|
|
|
|
|
для: Рома
(18.01.2009 в 23:00)
| | Не работает ни так, ни так... | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2009 в 23:05)
| | А страница, на которую переход, у Вас tst.htm? А настройки Вы сделали, чтоб в htm файлах исполнялся php код? | |
|
|
|
|
|
|
|
для: Николай2357
(18.01.2009 в 23:19)
| | Конечно. | |
|
|
|
|
|
|
|
для: Рома
(18.01.2009 в 23:00)
| | >а на мой взгляд это абсолютно разные вещи
В строке, обрамленной двойными кавычками, переменная остается переменной. | |
|
|
|
|
|
|
|
для: Рома
(18.01.2009 в 23:00)
| | Молодой человек, вместо того, чтобы с умным видом пороть чушь, подучили бы лучше язык.
На вопросы Вам отвечать с такими знаниями и апломбом покамест рановато. | |
|
|
|
|
|
|
|
для: Trianon
(18.01.2009 в 23:15)
| | учту | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2009 в 22:36)
| | уберите ob_start();
Кроме того, может понадобиться в адресе в поле Location: добавить идентификатор сессии явным образом. | |
|
|
|
|
|
|
|
для: Trianon
(18.01.2009 в 23:20)
| | Д.Котеров советует делать так:
ini_set("session.use_trans_sid",true);
// Старт сессии
session_start();
|
| |
|
|
|
|
|
|
|
для: Valick
(18.01.2009 в 23:34)
| | ну или так, да. | |
|
|
|
|
|
|
|
для: Trianon
(18.01.2009 в 23:58)
| | Нет, так не работает. Диагностическое сообщение - Undefined index: sex
Как ввести идентификатор сессии явным образом, как Вы об этом говорили? | |
|
|
|
|
|
|
|
для: Владимир55
(19.01.2009 в 00:03)
| |
<?php
session_start();
//....
header('Location: tst.htm?' . SID );
exit;
?>
|
а tst.htm - это точно php-скрипт? | |
|
|
|
|
|
|
|
для: Trianon
(19.01.2009 в 00:18)
| | Да, это php-скрипт. А код разметки есть в этом же файле, но идет ниже скрипта.
И теперь, с Вашей помощью, всё заработало!
За что БОЛЬШОЕ спасибо! | |
|
|
|
|
|
|
|
для: Trianon
(18.01.2009 в 23:20)
| | ob_start(); убрал. Диагностическое сообщение - Undefined index: sex
"может понадобиться в адресе в поле Location: добавить идентификатор сессии явным образом."
Как это делается? | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2009 в 23:46)
| | Похоже, что сессия "теряется" вследствие использования конструкции
header('Location: tst.htm');
exit;
|
Если вместо неё использовать
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0;
URL=1mj.htm'></HEAD></HTML>";
| то тоже не работает.
А при типовой ссылке
echo '<p><a href="1mj.htm">Переход</a></p>';
| сессия сохраняется.
Однако вариант со ссылкой, на которую надо кликать, в данном случае мне не подходит.
Как же передать сессию через безусловный переход
header('Location: tst.htm');
exit;
| или
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0;
URL=1mj.htm'></HEAD></HTML>";
|
| |
|
|
|
|
|
|
|
для: Владимир55
(19.01.2009 в 00:16)
| | Я долго и нудно пытался потерять эту переменную. Никак. Все варианты худо бедно работают. Причина где то ещё. | |
|
|
|
|
|
|
|
для: Николай2357
(19.01.2009 в 00:22)
| | Спасибо, Николай!
С рекомендацией Trianon (19.01.2009 в 00:18) всё заработало. | |
|
|
|