[英]PHP $_SESSION not sharing through pages
我決定更新Synology服務器。 此更新包括最新的PHP版本。 在我能夠使用session_register()和session_is_registered()函數之前。 這些函數已棄用,因此我使用$ _SESSION []重構了代碼。 但是,問題是我無法閱讀另一頁上的會話。
第1頁
<?
session_start();
$_SESSION['page1'] = "page1session";
//Check if page2 is set on other page
if (isset($_SESSION['page2'])) {
echo "Received the session from page 2";
} else {
echo "No session info from other page";
}
//Dump all session info:
var_dump($_SESSION);
第2頁
<?
session_start();
$_SESSION['page2'] = "page2session";
//Check if page2 is set on other page
if (isset($_SESSION['page1'])) {
echo "Received the session from page 1";
} else {
echo "No session info from other page";
}
//Dump all session info:
var_dump($_SESSION);
因此,因此我想到,該會話無法(由於具有寫權限)被寫入php.ini中的session.save_path路徑。 當我運行php_info()時,該路徑被設置為/ var / services / tmp並被列為session.save_path; 因此,我認為此更新將此新路徑設置為新的會話路徑,並且該文件夾沒有全局讀/寫特權。 因此,我使用SSH登錄並運行以下代碼以遞歸方式設置權限
chmod -R 777 /var/services/tmp
設置權限后,我重新啟動了apache服務。
不幸的是,我仍然無法保存或打開另一個頁面上的會話。
第1頁上的var_dump會返回page1 => page1session,而在第2頁上沒有會話信息。頁面輸出到page2 => page2session。
伙計們怎么了?
謝謝,
亞歷克斯
清除會話目錄,打開第1頁,檢查是否已寫入會話文件。 如果還沒有,請仔細檢查您的保存路徑(也許是die(session_save_path());
在腳本中要100%確保您獲得了正確的路徑)。 您也可以暫時將會話保存路徑設置為/ tmp,以幫助消除原因。
如果正在寫入會話文件,請檢查是否正在寫入會話cookie。 再次確認您腳本中的會話cookie名稱,以確保您的瀏覽器可以使用cookie查看器插件(firefox和chrome有很多這樣的插件)。 還值得轉儲$ _COOKIE變量,這樣您就可以知道Cookie是否正在通過(以防萬一,比如被限制在您域中的特定路徑下發生)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.