Php 如何使计数器在多个请求上工作?
我有这个密码Php 如何使计数器在多个请求上工作?,php,variables,if-statement,session-variables,Php,Variables,If Statement,Session Variables,我有这个密码 if (empty($sid)) { $sid = 0; } else { $sid++; } $_SESSION['words'][$sid] = $try; $sid在脚本中没有其他设置 加载该页时,$sid的值保持为0。它应该增加。 我非常感谢您的帮助。局部变量与会话
if (empty($sid)) {
$sid = 0;
} else {
$sid++;
}
$_SESSION['words'][$sid] = $try;
$sid在脚本中没有其他设置
加载该页时,$sid的值保持为0。它应该增加。
我非常感谢您的帮助。局部变量与会话或cookie不同,它们在页面重新加载(每次往返)时被重置
使用会话或cookie存储
$sid
值。在请求之间不保留局部变量。您也可以在会话中保存$sid
$sid = $_SESSION['sid'];
if (empty($sid)) {
$sid = 0;
} else {
$sid++;
}
$_SESSION['sid'] = $sid;
$_SESSION['words'][$sid] = $try;
您需要在会话或cookie中保存
sid
的值,然后可以这样检查:
尝试使用isset
$sid = $_SESSION['sid']; OR
$sid = $_COOKIE['sid'];
if (isset($sid)) {
$sid = 0;
} else {
$sid++;
}
$_SESSION['sid'] = $sid;
$_SESSION['words'][$sid] = $try;
希望它能帮助您。您必须将sid值保存在cookie或会话中,并使用该值检查...)当页面加载时,如果条件允许,它将进入。因为它的get$sid变量为空。所以在页面顶部声明变量并检查文档中的内容:“如果var存在且具有非空、非零值,Empty将返回FALSE。否则返回TRUE。”在您的情况下,因为$sid不存在
Empty($sid)如果执行了
条件,则将始终返回TRUE和的第一部分,即$sid=0代码>只要会话存在,这将一直有效。如果您希望此计数器更持久,请将其存储在更持久的位置,如数据库。感谢您提供的解决方案。。我没有想到;):)哦,很抱歉,一定是忘了点击:)我没有投反对票,但这必须是评论而不是答案。这不足以成为答案,而且有很多语法/拼写错误。我的答案是使用会话或cookie。关于语法有什么问题?@Dr.Dan:我已经测试过了,然后发布了。工作正常。是的……还是错了。您没有将该值存储在$\u会话['sid']