2012-06-02 11 views
0

我正在網站上使用會話,我無法在其他網頁上獲取數據。我已經使用其他主機上的代碼,並在其他主機上正常工作,所以我認爲主機問題。會話在我的網站上不工作

我用來保存會話的代碼是:

session_start(); 

$_SESSION["std_id"] = 'rst'; 

echo "<pre>"; 
print_r($_SESSION); 
echo "</pre>"; 

而且我使用此代碼檢索它的另一頁上:正如我所說的

session_start(); 
echo "<pre>"; 
print_r($_SESSION); 
echo "</pre>"; 

其工作罰款其他host以及localhost,所以這是服務器問題,但我需要保持用戶的登錄信息,因爲我們用於維護登錄記錄通過gh會議。

我們已經在該網站上安裝了Joomla,並且它的工作正常,它維護着所有的登錄信息和每件事情。

任何人都可以建議我的解決方案,而不是更改主機:) 謝謝。

編輯: 由於某種原因,我無法顯示主機名稱。 我正在使用的域是大學部門的子域,主站點是大學站點,我在子域下的新文件夾下使用此代碼。

+0

何時不工作?你能在這些情況下顯示你使用的主機名嗎? –

+0

頁面是否在同一主機上?在同一個域上? – Zuul

+0

是您在不同子域上的第二頁? – dan

回答

2

你在錯誤日誌或php錯誤報告(error_reporting)中是否有錯誤? 像"No session exists - writing to test_value"

還可以測試你的當前會話目錄,如果它的寫:

$writeable = is_writable(ini_get("session.save_path")); 

一個解決方案是change your session directory與此: (創建的/ tmp目錄by hand在你的根)

ini_set("session.save_path","/tmp"); 

或與您的.htaccess

php_value session.save_path /tmp 

,並給予在的/ tmp目錄許可0777,這必須在你的根。

+0

是的會話目錄是不可寫的,你能告訴我在我的子域中/ tmp目錄在哪裏嗎? 我使它可寫,但再次說會話不保存。 –

+0

非常感謝vlzvl它的工作,現在我的問題得到解決。 –

1

正如我在你的代碼中看到的,一切看起來都很好。您不需要更改您的主機只需聯繫您的主機提供商。我以前遇到過與主機類似的問題。如果你聯繫他們,他們會編輯你的php.ini文件,讓你開始會話。

注意:並非每個主機提供商都允許用戶使用PHP的許多功能。你有它要求他們設置它。他們關閉這些功能以節省CPU使用量。

+0

時,我甚至得到會話ID我仍然沒有聽說過關閉會話。 –

+0

就像我說過的,我以前有過類似的問題。不僅會話,某些主機提供商關閉了PHP的許多功能以節省CPU使用量。特別是如果它是雲託管。 – zbgokalp

+0

他們提供的會話,因爲我認爲,因爲當我回聲phpinfo();'它表明會議在主機上。 –