2010-10-08 113 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”];
}