【发布时间】:2015-10-06 19:11:33
【问题描述】:
我的 WordPress 会话有问题。我有一个文件“test.php”,用于将变量发布到 WordPress 网站。它具有条件:“如果设置了会话变量,则用户可以访问整个 WordPress 站点,如果未设置会话变量,则用户无法访问该站点”。
当我使用 test.php 将变量发布到 WordPress 站点时,主页工作正常,但是当我访问像“xyz.com/contact”这样的内页时,我收到错误Not Access,这意味着会话变量已被清除在下一页。
这里是 test.php 文件:
<form action="wordpress-site-link" method="POST">
<input type="submit" name="var" value="go"/>
</form>
在文件themes/theme-name/header.php中我写了这段代码:
session_start();
if(isset($_SESSION['var'])) {
echo 'Welcome';
} else if(isset($_POST['var'])) {
$_SESSION['var'] = $_POST['var'];
} else {
echo 'No access...';
exit;
}
【问题讨论】:
-
不要假设会话已启动。 Wordpuke 可能已经输出了其他内容,导致“标头已发送”错误。检查
session_start()的返回值 - 失败时为布尔值 false。 -
检查剩余页面是否与首页不同,例如首页以www开头。其余页面没有。在这种情况下,会话仅为主页设置。