Установка переменных $ _POST

У меня есть форма, использующая POST и переменную. Как бы установить эту переменную в $ _POST, чтобы после отправки формы я все равно могу получить переменную?

Я попробовал просто

$_POST['variable'] = $variable; 

Он заканчивается пустым.

Вы должны либо поместить эту переменную в скрытое поле в свою форму, либо использовать переменную сеанса.

Скрытое поле

 <form method="POST" action="someactionpage.php"> <input type="hidden" name="my_var" value="<?php echo $myvar; ?>" /> <!-- ... --> </form> 

И получить его после в someactionpage.php с $_POST['my_var'] когда форма отправлена.

Переменная сеанса

Просто сохраните его в переменной $ _SESSION

 <?php session_start (); // Just once at the beginning of your code // ... $_SESSION['my_var'] = $myvar; ?> 

и получить его на другой странице с помощью

 <?php session_start (); // Same than before // ... echo $_SESSION['my_var']; ?> 

Дополнительная информация

Как указано в некоторых ответах и ​​комментариях, вы всегда должны проверять наличие переменной, потому что у вас нет гарантии этого. Просто используйте функцию isset

 if (isset ($_SESSION['my_var'])) // Do stuff with $_SESSION['my_var'] 

или

 if (isset ($_POST['my_var'])) // Do stuff with $_POST['my_var'] 

Как отметил Колинк в комментариях, значение поля (с помощью POST) можно легко увидеть и изменить пользователем. Поэтому всегда предпочитайте переменные сеанса, если это действительно некритическая информация.

PHP – это серверный язык! Вы не можете установить переменную и использовать ее в другом экземпляре. Это означает, что PHP сбрасывает все данные после обработки перезагрузки. Чтобы настроить переменную, определенную после перезагрузки, вы должны использовать текущий сеанс. См .: http://de1.php.net/manual/en/book.session.php

 <?php session_start(); $_SESSION['variable'] = 'my content'; 

Вы можете использовать $ _POST ['variable'] = $ foo для установки переменной post. $ _POST ['variable'] будет продолжать устанавливаться до тех пор, пока скрипт php не завершит выполнение, или пока вы не будете использовать: unset ($ _ POST ['variable']). Если вы пытаетесь сохранить переменную вокруг сеансов (как это звучит), вы должны использовать сеанс.

в сессии 1:

 session_start(); $_SESSION['variable'] = 'foo'; 

для получения в другом вызове сервера:

 session_start(); $variable = $_SESSION['variable']; 

Переменные $ _POST отправляются с предыдущей страницы на страницу, в которой вы сейчас находитесь.

Это означает, что на самом деле вы не должны устанавливать POST-переменную, вы должны только получать ее содержимое.

Если вы хотите установить переменную post при следующем отправке формы, вы можете сделать следующее:

 <input type="hidden" name="variable" value="<?php echo $_POST['variable']" /> 

Это означает, что страница, которую вы отправляете, сможет получить доступ к вашей переменной следующим образом:

 $variable = $_POST['variable']; 

Если вы хотите, чтобы переменная оставалась с определенным пользователем, вы должны заглядывать в сеансы.

Вы можете установить $ _POST ['my_var'] (любое имя) до или после отправки:

  <input type="text" name="my_var" value="<?= $myvar ?>" /> 

(Обратите внимание: тип поля не должен быть «скрытым», как опубликовано ранее). Если, скажем, у вас есть код, который обрабатывает форму из двух разных типов экранов и должен изменить один из форм vars после отправки, просто сделайте это в код после отправки:

  $_POST['t_mytext'] = "changed value (or whatever)"; 

Попробуй это:

 $variable = isset($_POST['variable']) ? $_POST['variable'] : '';