2014-10-18 24 views
0

我正在整合分页到wordpress块,应该发生什么是每当我点击“旧帖子”按钮,后偏移增加另一个php文件(块文件和增量文件是单独的文件)。只有一行执行在一个虚假IF - PHP

每当我点击的旧帖子,但有些魔术发生不应该:

问题是与的if语句之一,什么情况是,IF语句评估为假,但这一行,我标在代码仍然执行(回声不执行,但$_SESSION["inf"] = 0;确实)。

这是代码。

if(isset($_POST["paginate_btn"])){ 
    if(isset($_SESSION["inf"])){ 
     echo "PREVIOUS:".(string)($_SESSION["inf"]); 
     $_SESSION["inf"] = $_SESSION["inf"] + 5; 
     echo "<br/> incremented by 5, RESULT:".(string)($_SESSION["inf"]); 
    } 
    else{ 
     echo "<br/> isset session inf failed, set to 5"; 
     $_SESSION["inf"] = 5; 
    } 
} 
else if(isset($a) and ($a != $url)){ 
     echo "<br/>dif page"; 
     if(isset($_SESSION["inf"])){ 
      echo "<br/> unset"; 
      $_SESSION["inf"] = 0; <----- THIS LINE HERE! 
     } 
     else{ 
      echo "<br/>session inf not set and button not pressed"; 
     } 
} 
else{ 
    echo "<br/> button not pressed, a is not set and is same page"; 
    $_SESSION["inf"] = 0; 
} 

我搞砸周围的这几个小时,我不明白的情况下是在这里的..

var_dump((isset($a) and ($a != $url)));评估false,但仍然只有代码,一行有被执行,回声没有,甚至没有在它之前的dif页回声....

而有趣的部分,如果我注释掉一行,这不再发生,我甚至尝试设置它不同所以它肯定会以某种方式独立运行。

if语句之后的Var_dump代码。

echo "<br/>--1---<br/>"; 
var_dump((isset($a) and ($a != $url))); 
echo "<br/>--2---<br/>"; 
var_dump((isset($_SESSION["inf"]))); 
echo "<br/>---<br/>"; 
echo $_SESSION["inf"]; 
echo "<br/>---<br/><br/>"; 
+0

当你启动if条件时,你确定'$ _SESSION [“inf”]'是否非零?它确实是那条线,而不是另一条将$ _SESSION [“inf”]设置为零的线? – 2014-10-18 11:17:35

+0

Jep,例如,如果我将它设置为27,那么在下一次刷新的if条件之前$ _SESSION [“inf”]是27。 – aleks234 2014-10-18 11:22:07

回答

0

另一部分代码集$_SESSION["inf"]0

如果您没有看到echo s,它们不会被执行。

+0

然而,我认为这不仅仅是0,如果我设置特定的行来强制$ _SESSION [“inf”]为27,而是例如在下一次运行时将其设置为27,并且如果我评论那些线,它不再被重置那里(即使回声没有得到执行)。 – aleks234 2014-10-18 11:59:37

+0

重定向?但我想你会看到其余的'echo's。发布一个重现问题的最小例子。没有冒犯,但我不相信你的判断/推理。 – 2014-10-18 13:13:39

+0

旧的新闻按钮重新加载相同的页面,并尝试增加5。每次我重新加载时,数字被重置为与我在该行上设置的相同,这里是输出(将该行设置为'$ _SESSION [“inf”] = 32;',每当我按新闻更新 http://imgur.com/xEvaOTO – aleks234 2014-10-18 13:31:47