2014-03-05 3 views
0

У меня есть форма в моем index.php, которая получает значение имени. В моем action.php мне нужно отобразить значение с помощью $ _POST ['name']. Имя отображается хорошо, когда я направлялся в action.php. Однако у меня есть другая форма в action.php, которая, когда я submit, который формирует и обновляет action.php, отображаемое имя сообщает неопределенную ошибку индекса для отображения имени.POST-значения из разных форм

include('connect.php'); 

$name = $_POST['name']; 
echo $name; 

echo '<form method="get">'; 
    //... 
    echo '<p><input type="submit" name="submit" value="GO" />'; 
echo '</form>';' 
+1

Вы используете метод GET в то время как вы должны использовать метод POST вместо. – MrByte

+0

Имеет ли вторая форма поле «имя»? Вы показываете только кнопку «отправить». – Barmar

+0

@Barmar, даже если у меня есть кнопка отправки, когда она нажата, ошибка все еще происходит. – user3384012

ответ

0

Убедитесь, что $_POST['name'] устанавливается с помощью isset():

if(isset($_POST['name'])) { 
    $name = $_POST['name']; 
    echo $name; 
} 
+0

'$ _POST ['name']' установлен. Но когда я отправляю форму в display.php, она не задана. – user3384012

+0

@ user3384012: Вот почему вы проверяете его, когда он не установлен. – AbraCadaver

+0

Когда форма отправлена, это когда 'name' не установлен или становится нулевым. – user3384012

1

Вы используете метод GET в то время как вы должны использовать метод POST вместо.
Изменить следующую строку:

echo '<form method="get">'; 

To:

echo '<form method="post">'; 
0

Для вас называть $ _POST [ 'имя'] из формы на предыдущей странице, вам нужно будет использовать form method = "GET" action = "targetpage.php"

0

использовать $ _REQUEST ["name"] он работает для запросов POST и GET.

b.t.w. Вы не должны эхо-входные данные напрямую! Это можно легко использовать для XSS Attacks. Используйте http://fr2.php.net/htmlentities или что-то в этом роде, прежде чем эхо вводить непосредственно в браузер! В противном случае злоумышленник может использовать что-то вроде alert ('hax0rt'); как имя;)

0

Попробуйте это,

include('connect.php'); 
$name = isset($_POST['name']) ? $_POST['name'] : ''; 
echo $name; 


echo '<form method="post">'; 
    //... 
    echo '<input type="text" name="name"><br><p><input type="submit" name="submit" value="GO" />'; 
echo '</form>';' 
Смежные вопросы