检查$ _GET参数是否正确

时间:2012-02-02 10:38:37

标签: php get

我有三个$ _GET变量,我想检查它们是否正确传递。

$amnt = $_GET['amnt'];
$from = $_GET['from'];
$to = $_GET['to'];

if ($_GET != 'amnt' || $_GET != 'from' || $_GET != 'to' ) {
    $errorno = 1100;
    echo $errorno;
    exit;

到目前为止我已经尝试了这个,但是这只是检查$ _GET中的参数而不是acutal amnt =& from =等。有人可以放入ammount =& frommm =

1 个答案:

答案 0 :(得分:2)

您应该检查是否设置了您感兴趣的某个参数,如果是,请使用它。像:

if (isset($_GET['from'])) {
    // use $_GET['from']
}

如果您需要设置一定数量的参数,请检查所有参数:

if (isset($_GET['from'], $_GET['to'], $_GET['amnt'])) ...

如果设置了任何其他参数或参数拼写错误,请忽略它们。如果你真的想检查没有设置其他参数,你可以这样做:

if (array_diff_key($_GET, array_flip(array('amnt', 'from', 'to')))) {
    // some other keys are set!!
}

但重点是什么呢?如果你只是忽略那些参数,谁在乎呢?其他参数可用于调试,例如example.com/foo?DEBUG=true。如果你检查得太严格,那么你以后只会为自己制造问题。