这是我的密码
echo ("<br/>");
if ($APIkbpersec < 30) {
global $SpeedTest;
echo ("Slow speed");
$SpeedTest--;
}
if ($APIkbpersec > 30) {
global $SpeedTest;
echo ("High speed");
$SpeedTest++;
}
echo $SpeedTest;这段代码所在的页面每秒钟都会用AJAX重新加载,$APIkbpersec在40到0之间变化。
我基本上希望有一个变量($SpeedTest)增加或减少,这取决于$APIkbpersec是什么。
$APIkbpersec小于30,我希望$SpeedTest在每次刷新时减少1,最低为0。$APIkbpersec大于30,我希望$SpeedTest从每次刷新1增加到最多10。问题是,我不知道is....Im当前试图将$SpeedTest写到txt文件中的是什么,所以我可以在每次刷新时读取它,在每次刷新时进行数学运算,而不需要在PHP中重置它。
如能提供任何帮助,将不胜感激。
发布于 2011-09-02 13:27:27
因为HTTP请求是无状态的,所以正在重置它。每个AJAX调用都是PHP脚本的一个孤立事件。要使变量持久,必须将其存储在$_SESSION中。
您还没有显示用于将其写入文本文件的代码,但除非您需要它在用户会话之后持久化,否则这是错误的方法。最好使用$_SESSION为您服务。如果您确实需要长期持久化,则应该使用数据库来代替。
session_start();
// Initialize the variable if it doesn't exist yet
if (!isset($_SESSION['SpeedTest'])) {
$_SESSION['SpeedTest'] = 0;
}
echo ("<br/>");
if ($APIkbpersec < 30) {
echo ("Slow speed");
$_SESSION['SpeedTest']--;
}
if ($APIkbpersec > 30) {
echo ("High speed");
$_SESSION['SpeedTest']++;
}
echo $_SESSION['SpeedTest'];发布于 2011-09-02 13:27:01
为此,您应该使用$_SESSION。
有关解释,请参见这里,但基本上需要执行以下操作:
session_start();
$SpeedTest = isset($_SESSION['speedTest']) ? $_SESSION['speedTest'] : 0;
if ($APIkbpersec < 30)
{
echo ("Slow speed");
$SpeedTest--;
}
if ($APIkbpersec > 30)
{
echo ("High speed");
$SpeedTest++;
}
$_SESSION['speedTest'] = $SpeedTest;
echo $SpeedTest;发布于 2011-09-02 13:28:31
以下任一项:
$SpeedTest并来回传递它。两者都很容易实现。如果您需要持久化存储,我建议您使用cookie,因为JS和PHP都可以共享它。会议,虽然显然是候选人,但在这种情况下有点过火-- IMO。
https://stackoverflow.com/questions/7284075
复制相似问题