2010-08-31 95 views
1

出于某种原因,我的帖子ID会话没有转到我的评分脚本页面。我从帖子页面的帖子页面中获取post_id,并将其转化为$_SESSION以将其带到我的评分脚本页面。我的$_SESSION保存登录的用户ID $_SESSION['user_id']如果登录继续到评分脚本但不是$_SESSION。我怎样才能让我的帖子ID继续到我的评分脚本页面?我有两个页面的顶部有session_start();

$_SESSION['post_id'] = $_GET['pid']; 
+0

'$ _SESSION ['post_id'] = $ _GET ['pid'];'在每页的顶部?如果没有提供pid,'$ _SESSION ['post_id']'将会被覆盖掉。 – fredley 2010-08-31 13:40:05

+0

没有它的只是在后页面。 – aatteot 2010-08-31 13:40:48

回答

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 
+0

+1我正在输入相同的东西..每次都会得到我......即使是空白的行可以做到这一点。 – Mikey1980 2010-08-31 13:46:40

+0

我在哪里放置此代码? – aatteot 2010-08-31 13:47:03

+0

@aatteot,位于脚本的顶部。 – shamittomar 2010-08-31 13:49:51

0

因与PHP会话问题的最常见原因是会议开始前的PHP脚本输出的东西。

好吧,您可能没有任何回声语句,或者除了阅读会话之外,您甚至可能没有任何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错误输出应该会告诉您在哪里出错,如果是这种情况。