如果$ _GET&&条件不起作用,只检查第二条件是否为真

时间:2016-06-12 17:10:56

标签: php

我试图在执行重定向之前检查BOTH $ _GET条件是否为真,但我的代码只是检查第二个是否为真。

这就是我所拥有的:

           Value        Difference
(-3)           3    
(-2)           4    
(-1)           5    
(1)        3 + 1           1
(2)        4 - 2          -2
(3)        5 + 3           3
(4)    3 + 1 + 2           2
(5)    4 - 2 + 1           1
(6)    5 + 3 - 2          -2
(7) 3 + 1 + 2 - 1         -1

它正在做的是,如果我将utm_campaign设置为= testing123,它将不会重定向。这很好,我希望它两者都需要。如果我将utm_campaign设置为= testing123并将utm_source设置为= testing456,那么它确实会重定向,到目前为止很好。现在,如果我只将utm_source设置为= testing456它也会重定向,这意味着它只检查第二个条件是否为真,但是我需要两个都是真的或者要让脚本退出,我似乎无法弄清楚为什么它没有按照它应该的方式工作。

这是在Wordpress header.php文件中,不确定它是否有所作为。

2 个答案:

答案 0 :(得分:0)

使用引号arround string

  if($_GET['utm_campaign']== 'testing123' && $_GET['utm_source']=='testing456') {

答案 1 :(得分:0)

我认为您应该检查参数是否已设置并稍微格式化代码。此外,无需声明函数preserve_qs()

if (strpos($url,'this-is-an-example-post') !== false) {

    if(isset($_GET['utm_campaign']) && isset($_GET['utm_source']) && $_GET['utm_campaign']=='testing123' && $_GET['utm_source']=='testing456') {
        $qs = "?" . $_SERVER['QUERY_STRING'];
        if (empty($_SERVER['QUERY_STRING']) && strpos($_SERVER['REQUEST_URI'], "?") === false) 
            $qs = "";

        header("Location: http://example123.com/this-is-an-example-post" . $qs);
        exit;

    }

}