簡體   English   中英

PHP Session無法在PHP5中運行

[英]PHP Session not working in PHP5

我有2頁:login.php和index.php。 這兩個頁面都以

session_start();

當我設置

$_SESSION['user'] = "name"; 

在login.php中,而不是打開index.php,我的會話對象為空。 怎么會?

編輯:

我發現了問題:IE 7.我不得不訪問我的域名。 但是,我認為會話存儲在服務器上,而不是客戶端? 為什么我有IE瀏覽器訪問我的域名? http://www.pcwindowstips.com/2007/09/04/how-to-enable-cookies-in-internet-explorer-7/

我以為會話存儲在服務器上而不是客戶端? 為什么我有IE授權訪問我的域名? http://www.pcwindowstips.com/2007/09/04/how-to-enable-cookies-in-internet-explorer-7/

會話的工作方式是為站點存儲會話cookie,其中包含會話ID。 服務器知道您的身份的唯一方法是在每次加載頁面時讀取會話ID cookie。 所有$ _SESSION數據都存儲在服務器上,供每個用戶使用,但必須為服務器設置cookie才能知道要檢索的$ _SESSION數據。

這也是為什么如果你獲得會話ID cookie,你可以基本上“成為”另一個用戶。

這件事發生在我身上,可能會為某些人帶來光明。 我的會話工作不正常。 IE 8和Firefox正在丟失會話信息。

我收錄了一個文件。 那個包含文件在尾隨&ques?>之后有一個額外的回車

回車開始了會議。 我把include_start放在include之后。 繁榮。

也許php.ini中的這個變量映射到現有路徑

session.save_path =“c:/ wrong / path”

Internet Explorers比其他大多數瀏覽器都有更嚴格的cookie策略。 檢查會話cookie參數 (另請參見session_get_cookie_params() )並盡可能使用顯式值替換默認值。 此外,您可以發送[假P3P策略]( http://msdn.microsoft.com/en-us/library/ms537343 ( VS.85).aspx)以滿足Internet Explorers。

這里沒有太多信息,我會嘗試使用我的心靈力量。

用戶登錄后,是否設置了會話var,然后使用http標頭將用戶重定向到index.php? 如果是這樣,我認為會話cookie不會發送給用戶。 如果是這種情況,解決方案是:

  1. 最初顯示登錄表單時調用session_start()(不僅僅是在用戶回復之后); 要么:
  2. 顯示“登錄成功!” 消息然后使用元刷新重定向,或者只提供index.php的鏈接。

您還可以嘗試在兩個頁面上轉儲會話ID,以查看您是否以某種方式啟動了新會話:

echo 'Session ID is: ' . SID . "<br/>\n"

在調用session_start()之前,您需要驗證是否已啟用cookie並且沒有任何內容(這包括存檔開頭或結尾的空行)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM