Данные сеанса потеряны между страницами PHP?

Я делаю форму добавления новостей, используя метод post. На второй странице я делаю проверку данных. Я определяю переменные, такие как $message = $_POST["message"], и после этого $_SESSION['message'] = "$message"; после этого я повторяю переменную сеанса, и все выглядит нормально, данные появляются. И когда я нажимаю кнопку «Отправить», которая переходит на другую страницу, чтобы добавить данные в БД, сеанс становится пустым. На каждой странице есть session_start, если я определяю veriable как $_SESSION="test", он проходит все 3 страницы, но данные, сгенерированные в форме, теряются. Пожалуйста помоги!


person Victor    schedule 11.10.2010    source источник
comment
Вы делаете session_start()?   -  person Pekka    schedule 11.10.2010
comment
Итак, вы пытаетесь вставить в BDD другую страницу после отправки формы?   -  person MatTheCat    schedule 11.10.2010
comment
На каждой странице есть session_start   -  person Victor    schedule 11.10.2010
comment
3 страницы сначала - это форма, 2-я, где я определяю переменные и проверяю информацию, а 3-я страница добавляет данные в mySQL.   -  person Victor    schedule 11.10.2010
comment
на кой черт вам нужна третья страница? обычно вы делаете форму на первой странице, затем у вас есть вторая страница, которая проверяет ввод, и, если ввод был правильным, он вставляет данные в БД, а затем перенаправляет на страницу Everything_Done.php или, если ввод был неправильным, он перенаправляет обратно на форма.   -  person ITroubs    schedule 11.10.2010
comment
вторая страница предназначена для того, чтобы пользователь мог проверить данные, которые он ввел в форму, и там есть возможность исправить их или отправить.   -  person Victor    schedule 11.10.2010
comment
Я попытался сделать все на второй странице, используя IF. Но когда я нажимаю «Отправить», и страница перезагружается, данные теряются так же, как и на третьей странице.   -  person Victor    schedule 11.10.2010
comment
Но вопрос в том, почему данные формы исчезают, а определенные var, такие как $_SESSION=test, в порядке на каждой странице.   -  person Victor    schedule 11.10.2010


Ответы (1)


$_SESSION="test" перезаписывает все данные вашего сеанса.

Вместо этого вы должны делать то же, что и в других местах, и использовать $_SESSION['test']="test".

Это поместит новый элемент в ваш массив $_SESSION вместо того, чтобы перезаписывать все переменные сеанса.

person Alan Geleynse    schedule 10.11.2010