2010-08-31 98 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錯誤輸出應該會告訴您在哪裏出錯,如果是這種情況。