如何检查是否给出了所有url参数?

时间:2012-11-19 21:04:23

标签: php url

我有这个网址:

localhost/moked/insert_event.php?custnumber=1234&event=E15&port=8088&areanumber=17

我想检查用户是否已将其更改为例如:

localhost/moked/insert_event.php?custnumber=1234

我知道如何检查变量是否为空,但我想知道用户是否已取出参数。我怎么能这样做?

6 个答案:

答案 0 :(得分:9)

为单个变量执行此操作非常简单:

if (!isset($_GET['event'])) {
    // event is missing
}

大多数人不知道的是isset命令将采用您提供的任意数量的参数。您可以一次检查所有必需的参数:

if (isset($_GET['custnumber'], $_GET['event'], $_GET['port'], $_GET['areanumber'])) {
    // all parameters are set
} else {
    // some are missing
} 

答案 1 :(得分:2)

类似的东西:

if( (!isset($_GET['event'])) || (!isset($_GET['port'])) || ... ) {
   //do stuff
}

答案 2 :(得分:1)

检查是否存在所需的变量:

if (!isset($_GET['port'])) {
    // do something
}

答案 3 :(得分:1)

尝试isset($_GET['event'])isset($_GET['port'])isset($_GET['areanumber'])

请参阅isset()

答案 4 :(得分:0)

try{
    if(!isset($_GET['custnumber'])){
        throw new Exception('Missing "custnumber" parameter');
    }elseif(!isset($_GET['event'])){
        throw new Exception('Missing "event" parameter');
    }elseif(!isset($_GET['port'])){
        throw new Exception('Missing "port" parameter');
    }elseif(!isset($_GET['areanumber'])){
        throw new Exception('Missing "areanumber" parameter');
    }
}catch(Exception $e){
    echo $e->getMessage();
}

答案 5 :(得分:0)

检查变量列表:

$vars=array(
'var1'=>'Var1 Description',
'var2'=>'Var2 Description',
'var3'=>'Var3 Description');
$delim='';
$message='';
foreach($vars as $name=>$description)
{
    if(!isset($_GET[$name]))
    {
        $message.=$delim.$description;
        $delim=', ';
    }
}
if($message!=='')$message='Missing: '.$message;