2016-01-30 8 views
0

я в настоящее время есть некоторые PHP-код на форме действия, и она обновляется на следующую страницу формы с

<?php echo $_POST['var here']; ?>

и он работает, но я заметил, что когда я пытаюсь обновить страницу, она просит подтвердить повторную отправку. Когда я повторно отправлю его, он работает на той вкладке, на которой он был удален, но на другой новой вкладке он не отображает отображаемые переменные post php. Я даже сделал следующий шаг, увидев, что, открыв вторую страницу после отправки формы, переменные столбца php исчезли ...

Помощь!

Спасибо!

+0

Можете ли вы рассказать, что вы пытаетесь сказать? Его путают ... – amanuel2

+0

уверен, в основном я пытаюсь использовать действие формы, чтобы, конечно, перенаправить на новую страницу. На этой новой странице я использовал переменные post из формы для добавления на новую страницу. Прямо сейчас, когда я обновляю и подтверждаю повторную отправку или открываю одну и ту же страницу в новом браузере, она не загружает php echo $ _POST var, это удаляет весь контент с моей страницы. И похоже, что переменные post php почти сохранялись как файлы cookie. – aidangig

ответ

1

При отправке формы с кодом <form method="post" />, он делает отправку с запросом на сервер, таким образом, заселяя: $_POST. Когда вы открываете ссылку на новой вкладке, она больше не является почтовым запросом, а получает запрос. Вот почему вы ничего не увидите в $_POST.

$_POST - обычно от форм
$_GET - от значений по URL (строка запроса myscript.php?myvar=Joe)

Вы можете найти много ресурсов о нем. You can start here

Если вы хотите сохранить значения, которые вы можете сохранить их в сессии:

<?php 
session_start(); // should be at the top of your php 

if (isset($_POST['var'])) { 
    $_SESSION['var'] = $_POST['var']; 
} 

$myvar = isset($_SESSION['var']) ? $_SESSION['var'] : "no var"; 

echo $myvar; 

Теперь значение сохраняется в сессии, так что вы можете посетить страницу в новой вкладке, и это все еще будет там.

+0

большое спасибо, поэтому, чтобы продолжать показывать вары, я должен был бы изменить их, чтобы получить вместо сообщения? – aidangig

+0

Я обновлю ответ – Michael

+0

Я только что обновил это, и теперь он возвращается с выходом 1 ... – aidangig

0

Это звучит как желаемое поведение. Переменная $_POST должна заполняться только при создании пост-действия. Если вы хотите хранить переменные на разных страницах, вы можете сохранить их либо в $_SESSION var на PHP, либо иметь дело с бизнес-интерфейсом $_COOKIE. Если вы всегда будете отображать страницы из бэкэнда, то $_SESSION - это путь. Никогда не поздно читать cookies и sessions.

Тощий этого является то, что вы будете хотеть, чтобы сделать что-то вроде этого:

<?php 
session_start(); 
if ($_POST['var']) { 
    $_SESSION['var'] = $_POST['var']; 
} 

echo $_SESSION['var'] ?: $defaultValue; 

Тогда вы заметите, что сообщение меняется только тогда, когда вы размещаете и не будет существовать до этого.