出于某种原因,我的帖子ID会话没有转移到我的评分脚本页面。我从帖子页面中的帖子网址抓取post_id,然后将其转换为$_SESSION
以将其带到我的评分脚本页面。保存登录用户ID $_SESSION
的{{1}}如果已登录,则会转到评分脚本,而不是帖子$_SESSION['user_id']
。如何将我的帖子ID转到我的评分脚本页面?
我的两个页面顶部都有$_SESSION
。
session_start();
答案 0 :(得分:2)
在开始会话之前,您可能会有一些输出。如果是这种情况,则可能无法正确设置会话。启用调试模式并搜索有关session_start()函数的错误:
ini_set('display_errors', 'on');
error_reporting(E_ALL);
如果无法切换调试,请检查error_log。
错误可能如下所示:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\phptests\test.php:1) in C:\xampp\htdocs\phptests\test.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\phptests\test.php:1) in C:\xampp\htdocs\phptests\test.php on line 4
答案 1 :(得分:0)
php会话出现问题的最常见原因是php脚本在会话开始之前输出了一些内容。
好的,你可能没有任何echo语句,或者除了阅读会话之外你甚至可能没有任何PHP代码......但是要花时间检查你的代码开始之前会发生什么。
例如,让我们发现差异:(只有一个代码可以使用)
<?php
session_start();
$_SESSION["test"] = "hello";
if($_SESSION["test"] == "hello";
{
echo "Session is working!";
}
else
{
echo "Session is NOT working!";
}
?>
和...
<?php
session_start();
$_SESSION["test"] = "hello";
if($_SESSION["test"] == "hello";
{
echo "Session is working!";
}
else
{
echo "Session is NOT working!";
}
?>
不同之处在于,在session_start()之前打开任何数据之前只有一个空格会阻止脚本运行。
我去过那里 - 在文档顶部有一个意外的空格或空白行会产生严重的问题,但如果是这种情况,启用php错误输出应该会告诉你哪里出错了。