我有三个$ _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 =
答案 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
。如果你检查得太严格,那么你以后只会为自己制造问题。