Почему этот `$ _SESSION = $ _POST` терпит неудачу?

Что мне здесь не хватает? Это мой PHP-файл:

<? session_start(); echo print_r($_SESSION); echo "<br>"; echo print_r($_POST); // Save input in session $_SESSION = $_POST; echo "test1"; ?> <br> test2 

Доступ к этому файлу осуществляется из формы submit, и я уверен, что данные публикации существуют. Выход:

Массив ([login] => 1) 1
Array ([name] => test [type] => test) 1
test2

и это не имеет никакого смысла для меня. Содержимое session содержимое post печатаются без проблем.

Но $_SESSION = $_POST; кажется, терпит неудачу, а остальная часть скрипта до ?> не дает никакого ответа, что очевидно, потому что текст test1 не печатается.

Я не могу узнать, что происходит с $_SESSION = $_POST; , Все вопросы, которые я нахожу в SO и в других местах, дают такой способ хранения данных в сеансе.

Я знаю, что session_start(); необходимо до выхода. Есть ли что-то еще, что также необходимо в этом случае?

Что мне не хватает?


Обновление – тестовый файл

Точный код полного тестового файла ( ссылка удалена ):

 <? session_start(); ?> <html> <head> </head> <body> <? echo print_r($_SESSION); echo "<br>"; echo print_r($_POST); // Save input in session $_SESSION = $_POST; echo "test1"; ?> <p>test2</p> <form method="post" action="test.php"> Type something to test: <input type="text" name="testfield" id="testfield"> <input type="submit" value="Submit"> </form> </body> </html> 

Обновление – решено?

Хорошо, теперь это решено. Но это СТРАЖНО …

Проблема, по-видимому, вызвана комментарием. // останавливает выполнение скрипта в скобках <?..?> . Когда я удаляю комментарий // Save input in session , тогда он работает …?

Теперь ЧТО я здесь пропал? Это должно быть какая-то настройка php или что-то в этом роде. Или, возможно, некоторые файлы или данные сценария, которые были изменены. Я думаю, что, поскольку @CodeCaster работал, на моем компьютере что-то происходит, но это работает где-то еще? Кто-нибудь видел это раньше?

Solutions Collecting From Web of "Почему этот `$ _SESSION = $ _POST` терпит неудачу?"

Пробовали ли вы использовать $_SESSION['name'] = $_POST['name']; вместо?

Я никогда не использовал $_SESSION = $_POST; , и ни разу не видели его, за все время я программировал на PHP.

Надеюсь это поможет.

я бы вместо этого выделил $ _POST и добавил его в $_SESSION['mypostvars'] . Имейте в виду, что вы должны проверить и проверить $ _POST перед их сохранением.

это возможно дублирование PHP-слияния $ _POST в $ _SESSION

Работая с Xampp, этот пример отлично работает. «Test1» печатается до и после успешного поста. Использование PHP 5.3.8.

Протестировано на Linux с PHP 5.3.6, также отлично работает печать «test1» в обоих случаях.

Итак, кажется, что PHP не проблема.

Вы можете изменить $ _SESSION, но я не думаю, что вам разрешено переназначить его так. Вместо этого скопируйте в него элементы $ _POST. Попробуйте использовать array_merge (), но если это не сработает, напишите цикл foreach, чтобы сделать это.