【发布时间】:2017-01-11 21:34:11
【问题描述】:
main.php:
<?php
session_start();
echo "<div id='buttons'>";
include "buttons.php";
echo "</div>";
JavaScript:
function refreshButtons(){
$('#buttons').load(document.URL + ' #buttons');
}
buttons.php:
session_start();
$a=checkbuttons($_SESSION['userid']);
if ($a=="false") {
echo "<button type='submit' class='btn btn-danger btn-lg'>Return to Main</button>";
}
else {
echo "<button type='submit' class='btn btn-success btn-lg'>Proceed</button>";
}
我有一个主页,其中有一个每 10 秒刷新一次的 div。它加载 buttons.php,根据用户会话 ID 检查 MySQL 数据库是否返回 true 或 false。
页面第一次加载正常,所有变量都正常。
我遇到的问题是 $_SESSION['userid'] 在第一次 JavaScript 刷新 div 后为空。当然,在那之后查询的结果总是错误的。会话 id 保持不变,我已经检查过了。我不知道接下来要在这里检查什么。
buttons.php 每次加载时都会启动它自己的会话,但变量仍然为空。
【问题讨论】:
-
你在 main.php 中有一个语法错误,你还没有发布你的
checkbuttons()函数。 -
@Mike 提到您需要包含 checkbuttons() 函数。
-
根据我们掌握的信息很难判断,但是第一次,buttons.php的代码直接包含在main.php中(可能导致session_start被调用了两次),第二次时间由 Ajax 调用。会话是否存储在 cookie 中?它是否通过 Ajax 调用正确维护?我可以补充一下,是不是 document.URL 'main.php'?这个JS在哪里?
标签: javascript php jquery session