【发布时间】:2021-03-29 11:11:34
【问题描述】:
请帮忙。我有三个 PHP 页面,我使用“Woody sn-ps”在每个页面上粘贴了以下代码 sn-ps。插入。这些会话有时会根据我上次发布的页面在页面内进行通信。例如,如果我最后发布page 1,我可以看到page 2 和page 3 上显示的会话['rate'] 值。但如果我最后发布page 3 并进入page 1 填充会话['rate'] 并再次返回page 3,page 3 将没有这个值。
第 1 页代码
<?php
session_start();
print_r($_SESSION);
$_SESSION['rate'] = 50;
echo "<br>".$_SESSION['rate']."<br>" ;
?>
第 2 页代码
<?php
session_start();
print_r($_SESSION);
echo "<br>".$_SESSION['rate']."<br>";
$_SESSION['rate'] = 10; //This change wont effect on page 1 if I re-visit it.
?>
第 3 页代码
<?php
session_start();
print_r($_SESSION);
echo "<br>".$_SESSION['rate']."<br>";
?>
我也安装了“Native PHP Sessions for WordPress”插件,它声称 PHP 会话在 WordPress 中正常工作存在问题。但仍然没有帮助。您可以复制此代码并将其粘贴到 3 个不同的 WordPress 页面中,您仍然会看到问题。 (会话['rate'] 值基于我最后发布的页面。我尝试将 session_start(); 放在相应主题文件的header.php 文件中。仍然没有运气)。将以下代码放在function.php 文件上也无济于事:
function ses_init() {
if (!session_id())
session_start();
}
add_action('init','ses_init');
稍后,我希望用户使用会话保持登录状态。但是,如果会话不再与 WordPress 一起正常工作,这将是不可行的。
【问题讨论】:
-
如果您关注 cookie
PHPSESSID的值,您是否发现有问题(例如:值更改或 cookie 已删除)? -
尝试在functions.php中将
add_action('init','ses_init', 1);的优先级降低到1 -
感谢您的回复。我已经尝试降低优先级,但仍然有同样的问题。所有 3 个页面都显示具有相同的会话 ID。我的托管服务提供商是
hostinger。当我复制此代码并将其粘贴到另一个使用 WordPress 的托管服务提供商时,此代码可以正常工作。我已尝试删除 WordPress 并在hostinger重新安装。我在hostinger托管服务下拥有的两个网站的行为方式相同。 -
一些托管服务提供商不支持会话。请联系他们的支持或尝试使用 cookie。