2012-07-18 111 views
4

我在會話中有一個奇怪的問題..這是在我的本地機器上的WAMP服務器上工作..我的問題是溫東主機服務器在美國它不工作..當服務器託管時,php會話變量值爲空

即時通訊做這樣的:

session_start(); 
$_SESSION['test'] = 'testing login..'; 
在另一頁

我做:

session_start(); 
echo('my session value is : '.$_SESSION['test']); 

但我只得到 我的會話值是:

我的會話值沒有設置..

我檢查了服務器cPanel中的session.save_path,它表示/ tmp。

請幫助.. 在此先感謝。

+0

做餅乾的工作? – 2012-07-18 13:56:29

+0

@sixeightzero我總是發現他們這樣做。哦,等等,你問OP,他的* cookies是否可以工作...... – DaveRandom 2012-07-18 13:57:17

+0

也許劇本快關閉了? (取決於設置變量後發生的情況)。嘗試session_write_close()設置變量後。 – stephangroen 2012-07-18 13:57:40

回答

2

也許你的腳本死了,因爲session_start失敗,「頭已發送」?這可能發生,例如,如果你的試驗機生產服務器不編碼新的生產線以同樣的方式...

的錯誤可能不會顯示在生產服務器上,嘗試類似的東西:

ini_set('display_errors', 1); 
session_start(); 

看看你是否有用。

+0

不.. ..我沒有得到錯誤.. – Rifky 2012-07-18 14:12:53

+0

@Rifky,也嘗試'ini_set('error_reporting',-1);'。 – Buddy 2012-07-18 14:23:04

+0

nop ..沒有錯誤 – Rifky 2012-07-18 14:30:35

0

檢查您的session.save_path的權限。這個位置需要由Apache/httpd用戶寫入。

另請檢查您的session.save_path是否包含任何sess_前綴文件。

+0

如何檢查權限。我對此有點新。 – Rifky 2012-07-18 15:34:46

+0

你有命令行訪問該框嗎?做'ls -la/tmp'另外,如果你的用戶是'chroot','/ tmp'可能不是你的會話處理程序正在查找的文件。你總是可以嘗試像'〜/ sessions'這樣的新路徑。製作目錄,更新ini或腳本,然後重試。 – 2012-07-18 15:40:48

+0

感謝您的信息。我會在早上檢查,因爲我現在不在辦公室。 – Rifky 2012-07-18 15:59:20

0

感謝您的所有幫助。

我的問題是/ tmp文件夾中的安全權限。一旦糾正它的工作。

平均時間不要只使用SESSION ID的數字(例如$ _SESSION ['12345']),因爲在Linux託管它不採取數字唯一索引和跳過。 (所以使用$ _SESSION ['ACS12345'])..

0

php開始標記必須寫在一個PHP文件的第一行。這種方法幫助我解決這個問題。

+0

這是對另一篇文章的評論。 – Rico 2014-03-17 22:10:47