2010-10-08 109 views
0

有人可以幫助我解決我收到的錯誤。錯誤:注意:未定義索引:fk

$search_key = ''; 
/*if(isset($_POST) && ($_POST["fk"])!=NULL){ 
    $search_key = $_POST["fk"]; 
}elseif(isset($_GET) && ($_GET["fk"]!=NULL)){ 
    $search_key = $_GET["fk"]; 
} 
*/ 

if(!isset($_POST["fk"])){ 
    $search_key = $_POST['fk']; 
}elseif(isset($_GET["fk"])){ 
    $search_key = $_GET["fk"]; 
} 

回答

2

你必須在代碼中的第一行!isset低於

if(!isset($_POST["fk"])){ 
    $search_key = $_POST['fk']; 
}elseif(isset($_GET["fk"])){ 
    $search_key = $_GET["fk"]; 
} 

因此,如果$ _ POST [「FK」]沒有設置,它會嘗試讀取它。因此錯誤信息。只需使用isset而不是!isset。如果你想從$ _POST或$ _GET獲得值,你可以簡單地使用$ _REQUEST ['fk'];然後你可以使用$ _REQUEST ['fk'];因爲$ _REQUEST包含從$ _COOKIE,$ _POST和$ _GET合併的值(順序取決於您的PHP配置)

+1

我更喜歡避免使用$ _REQUEST,因爲它也包含cookie,但在這種情況下,它似乎是正確的一種用例來證明它的合理性。 – Spudley 2010-10-08 22:02:38

3

你測試不isset $ _ POST [ 「FK」]

if(isset($_POST["fk"])){ 
    $search_key = $_POST['fk']; 
1

如果(array_key_exists( 「FK」,$ _ POST)){
$ SEARCH_KEY = $ _ POST [」 FK'];
} elseif(array_key_exists(「fk」,$ _GET)){
$ search_key = $ _GET [「fk」];
}