$ _REQUEST ['action']!='foo'在if语句中不起作用

时间:2016-06-17 06:22:32

标签: php if-statement httprequest

我有以下功能:

public function output_berater(){
    if($_REQUEST["action"] != "berater_formular_suche" || $_REQUEST["action"] != "thema_formular_suche"){
        print_r($_REQUEST["action"]);           
    }
    return $output;
}

如果我发送的表单中包含隐藏字段berater_formular_suchethema_formular_suche,则print_r 不应显示在屏幕上。

我认为!=说'if not'?!

也许$_REQUEST和if语句有一些特价。

有人可以解释一下我的print_r显示的原因吗?

编辑:

如果我提交表格:

输出$ _REQUEST

Array
(
    [action] => berater_formular_suche
    [berater] => klaus-testname
)

如果我不提交表格:

输出$ _REQUEST

空数组。

2 个答案:

答案 0 :(得分:1)

您必须使用&&代替||

 if($_REQUEST["action"] != "berater_formular_suche" && $_REQUEST["action"] != "thema_formular_suche"){

或者,您可以加载到数组中,然后轻松检查:

$possible_values = ["berater_formular_suche","thema_formular_suche"];
if(!in_array($_REQUEST['action'],$possible_values)) { // Check if your posted values is not in array
     print_r($_REQUEST["action"]); 
}

答案 1 :(得分:1)

我认为你可以像使用它一样 e.g。

public function output_berater(){
    global $_REQUEST;
    if($_REQUEST["action"] != "berater_formular_suche" || $_REQUEST["action"] != "thema_formular_suche"){
        print_r($_REQUEST["action"]);           
    }
    return $output;
}