2014-02-22 20 views
0

最近開始學習PHP和我試圖讓get方法工作。未定義的索引'用戶名'在/var/www/html/test/foo.php在線2

這是HTML表單我測試的:

<!DOCTYPE html> 
<html> 

<body> 
<form action="foo.php" method="get"> 
    Name: <input type="text" name="username" /><br /> 
    Email: <input type="text" name="email" /><br /> 
    <input type="submit" name="submit" value="Submit me!" /> 
</form> 
</body> 

</html> 

我研究後發現,你應該使用isset()函數來檢查$ _GET數組包含的值。所以,我想(這是foo.php):

<?php 
    if(isset($_GET['username'])) 
    { 
    echo $_GET['username']; 
    } 

    else 
    { 
    echo "username not passed <br />"; 
    } 

    if(isset($_GET['email'])) 
    { 
    echo $_GET['email']; 
    } 

    else 
    { 
    echo "email not passed"; 
    } 
?> 

似乎什麼是錯的,試圖通過GET方法傳遞的價值觀,我試着用後完全一樣的東西,更換方法=「獲取」,以method =「post」,並在PHP文件中將$ _GET更改爲$ _POST。這與post方法完美配合。我知道你不應該通過get方法傳遞電子郵件等敏感信息,但我只是想測試它。

這是輸出後,我,我得到提交表單: 用戶名不通過不通過

+1

瞭解PHP的基礎知識! – Sliq

+4

@Panique「*基礎知識*」?他們不[手冊](http://php.net/manual/en/function.isset.php)說'isset()'可以用來檢查索引是否在數組中設置?也許你可以回答這個問題,教導我們這些以這種方式使用它的人,而不是增加一些無禮的和無益的評論? – newfurniturey

+4

在面值,你的代碼沒有錯。你確定你的2段代碼的當前版本是排隊的嗎(方法是獲取和使用$ _GET或w /相同的後; IOW不是方法得到,但使用$ _POST或反之亦然)?這兩個代碼位於同一個文件foo.php中,並且你剛剛在初始加載時看到那個msg? –

回答

0

當您嘗試這種方法會發生什麼 電子郵件?

if(array_key_exists('username', $_GET)) 
    echo $_GET['username'];