Почему переменные $ _POST не могут быть сохранены в PHP в $ _SESSION? - PullRequest
0 голосов
/ 29 марта 2011

У меня действительно странная проблема с сохранением значений форм, отправленных через $ _POST в качестве переменных сеанса.

ОК, поэтому у меня есть форма на странице 1, которая отправляется на страницу 2.

На странице 2 я устанавливаю все переменные Post для переменных Session.

На странице 3 я получаю эти переменные.

На странице 2, если я напишу что-то вроде этого:

$_SESSION['fname'] = 'john';

Работает нормально.Я могу получить его на странице 3.

Если я напишу что-то вроде

$_SESSION['fname'] = $_POST['fname'];

Эта переменная сеанса будет пустой на странице 3.

Даже страннее, если я что-то сделаюнапример:

$_SESSION['fname'] = $_POST['fname'].' Doe';

На странице 3 я вижу только Doe.

Переменные сеанса, которые ранее были установлены другими страницами, также хороши на странице 3.

Я подтвердилчто переменные записи установлены на странице 2, и я в растерянности на данный момент.Я не эксперт по PHP-сессиям или что-то еще, но я работал с ними раньше и не видел ничего подобного.

У кого-нибудь есть мысли?

Редактировать: переменнаяустановите в сеансе, это просто пусто на странице 3.

Ответы [ 3 ]

0 голосов
/ 29 марта 2011

Я считаю, что проблема в том, что данные POST недоступны при записи данных SESSION.

Возможно, вы можете исправить это, открыв php.ini и убедившись, что POST зарегистрирован до SESSION, этоКстати, POST доступен, когда вы пытаетесь записать данные сессии.

0 голосов
/ 30 марта 2011

Я не могу удержаться от вопроса: проверяли ли вы method="POST", а не GET на странице 1 формы?

0 голосов
/ 29 марта 2011

это означает, что что-то в посте ($_POST['name']) не установлено;

попробуйте var_dump($_POST); на странице 2, также посмотрите, что на самом деле было опубликовано

...