2009-09-23 49 views
0

我有一個真正無法解決的問題,我從來沒有過,我有一個註冊頁面/表單和一個處理頁面,提交到處理頁面上,我設置了任何錯誤用戶數據,如空字段,並將其設置爲會話VAR陣列PHP中奇怪的會話範圍問題

$_SESSION['signup_errors'] = $signup_errors; 

$ signup_errors,是我所到會話一個數組,然後我就可以訪問同一頁面上的會話數據,但我只是改變了我的站點附近使用mod-rewrite來更改URL的唯一東西,我似乎可以想到的是在我的註冊表單上,我無法再訪問這些會話變量,現在我使用mod-rewrite url就像這個domain.com/account /新,它曾經是domian.com/?p=account.new所以現在看起來它在一個不同的文件夾中,可能與它有關嗎?

我試過調試過很多,這是我能想出的唯一可能是因爲它似乎是一個不同的目錄現在因爲mod重寫也許會使會話無法訪問?

回答

3

您確定您正在訪問的每一頁上開始會話嗎?我會檢查以確保有

session_start(); 

只要有必要。

此外,什麼是

print_r($_SESSION); 

回報?什麼都可以?如果不是,它可能表明我在說什麼。

+0

是會話開始,這裏是踢球者,我可以在同一頁面上訪問另一個os會話vars,但不是那個,即時將去保持玩它,但這是一個奇怪的一個 – JasonDavis 2009-09-23 05:52:11

+0

是否有可能你是unsetting它,還是重置爲空數組?我會檢查你分配它的所有實例。 – 2009-09-23 05:53:49

+0

我可以更改會話名稱,然後它可以在我瘋狂的複雜應用程序中的某個地方運行,它必須要殺死那個特定的會話名稱 – JasonDavis 2009-09-23 05:53:55

0

我會檢查你是不是在改變域名。例如。 domain.com - > www.domain.com

通常情況下,cookie用於跟蹤會話ID,默認情況下,Cookie綁定到單個域。 I.E.如果該會話是在www.domain.com上創建的,則當您訪問login.domain.com時,不會發送cookie,從而不會產生會話信息。

0

它發生在我身上一次,也許你有類似的情況。會話變量是臨時的,一旦它被輸出到屏幕上,我會銷燬它。

如果您正在路由所有內容,如果存在破損的圖像,也可能重定向到您的php腳本,它會在後臺打印出錯誤並銷燬該會話變種。

只是一個念頭!