2012-12-26 36 views
0

我有这样的代码如何让一个计数器在多个请求中工作?

   if (empty($sid)) { 
        $sid = 0; 
       } else { 
        $sid++; 
       } 

       $_SESSION['words'][$sid] = $try; 

$ SID脚本无处设置。

当我加载该页面$ sid的值保持在0.它应该增加。 我真的很感谢一些帮助。

+0

您必须将sid值保存在cookie或会话中,并使用该值来检查.. :) –

+0

当页面加载时它会进入如果条件接收。因为它获得$ sid变量blank.So在页面顶部声明变量并检查它 – Hkachhia

+0

以下是文档的说明:“如果var存在并且具有非空非零值,则空将返回FALSE,否则返回TRUE。”在你的情况下,因为$ sid不存在,所以'empty($ sid)'将总是返回TRUE并执行你的'if'条件的第一部分,即'$ sid = 0;' –

回答

2

请求之间不保留局部变量。您也可以在会话中保存$sid

  $sid = $_SESSION['sid']; 
      if (empty($sid)) { 
       $sid = 0; 
      } else { 
       $sid++; 
      } 
      $_SESSION['sid'] = $sid; 
      $_SESSION['words'][$sid] = $try; 
+0

只要会话生效,这将工作。如果你想让这个计数器更持久,把它存储在更永久的地方,比如数据库。 – markus

+0

谢谢你的解决方案..我没有想到的;) – Axxess

+0

:)哦,会对不起,必须忘记点击:) – Axxess

0

局部变量不像会话或cookie,它们在页面重新加载时(每次往返)都会重置。

使用会话或cookie来存储$sid值。

+0

我的回答有什么问题?为什么我会倒下? – gamehelp16

+0

我还没有投票,但这必须是评论,而不是回答。 –

+0

只是一个答案还不够,它有很多语法/拼写错误。 – markus

0

您需要保存在会话cookie的或的sid值,那么你可以检查这样的:

尝试使用isset

$sid = $_SESSION['sid']; OR 
$sid = $_COOKIE['sid']; 

if (isset($sid)) { 
     $sid = 0; 
} else { 
     $sid++; 
} 

$_SESSION['sid'] = $sid; 
$_SESSION['words'][$sid] = $try; 

希望它会帮助你。

+0

为什么Negavite ...? – Sky

+0

我们一样,我们得到了一个回应 – gamehelp16

+0

您的解决方案将无法正常工作。你了解这个问题吗? –

相关问题