2010-09-18 31 views
0

我的開發和生產服務器上有以下相同的代碼。它適用於開發結束,而不是在生產方面:

<?php 
$s = session_start(); 
mail('[email protected]', 'Site-test', "s=$s; SESSION=".serialize($_SESSION), "MIME..."); 

開發服務器顯示:

s=1; SESSION=a:4:{s:20:"user_timezone_region";s:13:"Pacific/Samoa";s:4:"lang";s:1:"1";s:12:"sess_user_id";s:3:"225";s:14:"sess_user_type";s:1:"S";} 

生產服務器顯示:

s=1; SESSION=a:0:{} 

有什麼毛病我的PHP我希望能夠診斷的生產服務器上的設置。是的,這與我最近的其他兩個問題herehere有關。

更多細節:

  • 我已在此服務器上運行的cPanel
  • PHP error_log中沒有報告上面是一個錯誤(注意變量的'是「1」)
  • 在第一個鏈接中提到了兩個phpinfo()中的差異
+0

只是一個小的理智檢查:似乎在您的開發服務器$ _SESSION已經在其他地方填充。你的製作過程是否也一樣? – Fanis 2010-09-18 11:09:57

+0

檢查請求之間從生產服務器設置的會話cookie的ID。很可能你會看到它在請求之間發生變化,表明正在創建一個全新的(空白)會話。 – 2010-09-18 15:12:41

回答

1

該會話在首次啓動新客戶端時實際上是空的。這可能意味着在開發服務器上,您可以看到一個返回客戶端的會話,同時處於高效狀態 - 第一次客戶端的會話。

0

爲什麼你以這種奇怪的方式測試你的會話? 爲什麼不做出這樣一個簡單的腳本

<? 
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0; 
echo "Page reloaded ".$_SESSION['counter']++." times.<br> 
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">reload</a>"; 
?> 

如果它工作,你的會話完美的作品,但也有一些是錯誤的傳球標識符。
如果沒有......應該有一些錯誤信息。

相關問題