将空查询字符串传递给php

时间:2010-07-28 07:22:15

标签: php

我对查询字符串

有疑问

我有页面,我通过这样的查询字符串

      abc.php?id=12

有些时候查询sting“id”没有像

那样传递
      abc.php

并且id的某个时间值为空

     abc.php?id=

并且在上面2个可能性页面中给出错误。

如何解决这个问题?

5 个答案:

答案 0 :(得分:2)

在尝试对它做任何事情之前,检查是否设置了$ _GET ['id'](使用isset())。

答案 1 :(得分:2)

如果使用isset()empty()正确检查,则应该可以避免任何问题。

答案 2 :(得分:0)

使用isset()语言结构应用检查会产生错误,并允许您访问可能不存在的数组键。这是一个透明存在值的小函数。

$myID = getInput('id'); // Returns 'null' if ID doesn't exist but throws no PHP errors
$myID = getInput('id', 50); // Returns 50 if your ID doesn't exist

通过此操作,您可以执行验证检查以确保您拥有ID

if( ($myID = getInput('id', 0)) < 1) {
     die('Invalid ID Value');
}
die("My ID is: $myID");


function getInput($key, $default = null) {
    return isset($_GET[$key]) && $_GET[$key] != null ? $_GET[$key] : $default;
}

答案 3 :(得分:0)

在使用之前,您应该始终验证传入的数据。在这种情况下,使用isset来测试变量是否存在并且具有 null 以外的值,并使用ctype_digit检查该值是否仅包含数字字符。

答案 4 :(得分:-1)

检查以下条件

if($_GET['id'] == '') {

 // Your Condition Here

} else if($_GET['id'] != '') {

 // Your Condition Here

} else if(isset($_GET['id'])) {

 // Your Condition Here

} 

希望这有助于。