2014-03-05 66 views
0

我在我的index.php中獲得了一個名稱值的形式。在我的action.php中,我需要使用$ _POST ['name']顯示值。當我指向action.php時,名稱顯示正常。但是,我在action.php中有另一個表單,當我構建並刷新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

第二種形式是否有'name'字段?你只顯示'submit'按鈕。 – 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

表單提交時,它的名稱沒有設置或變爲空。 – user3384012

1

您使用GET方法,而你應該使用POST方法來代替。
更改以下行:

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

要:

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

爲您調用$ _ POST [ '名']從以前的頁面上的表單,您將需要使用form method = "GET" action = "targetpage.php"

0

使用$ _REQUEST [「name」]它適用於POST和GET請求。

b.t.w.你不應該直接回應輸入數據!這可以很容易地用來做XSS攻擊。使用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>';'