2012-05-07 101 views
0

我遇到了會話變量問題。第一次登錄PHP會話

我有一個簡單的註冊php頁面,使用ajax調用來驗證用戶名和電子郵件地址,如果他們已經存在。它還有一個ajax圖像上傳器,可以預覽所選圖像。

現在,這是我如何設置會話變量: - 因爲它只是這個片段後,在上面的代碼中迴盪

session_start(); 
session_unset(); 
$_SESSION = array(); 

if (ini_get("session.use_cookies")) { 
    $params = session_get_cookie_params(); 
    setcookie(session_name(), '', time() - 42000, 
     $params["path"], $params["domain"], 
     $params["secure"], $params["httponly"] 
    ); 
} 

session_destroy(); 
session_start(); 

$_SESSION['avurl'] = $filename; 

$ filename是有效的。

在我需要使用此會話變量的頁面我有這樣的: -

session_start(); 

$av_url = $_SESSION['avurl']; 

現在奇怪的是,每當這個第一次運行時會話變量不具有任何價值。但它第二次運作。

我怎麼來檢查這是我創建了一個test.php,它只是回聲$ _SESSION ['avurl'],並且第一次它從不顯示任何東西,但第二次它沒有。

我從中得出的結論是,一旦它迴響這個會話變量,它就開始工作以存儲該值。

和所有我使用來設置該變量的代碼是從剛剛編輯: -

session_start(); 

$_SESSION['avurl'] = $filename; 

到因爲這也沒有工作,我認爲這可能是與已經存在的一個問題會話。

Thankyou 希望這是足夠的信息來解決我的問題!

+0

在編碼和session_destroy的頂部只使用session_start()一次,session_unset用於刷新會話。 – VibhaJ

+0

使用session_start()後,它仍然不能正常工作.. –

回答

1
session_start(); 
session_unset(); 

此代碼刪除您的會話...爲什麼你這樣做?

+1

正確。在開始一個會話然後調用session_unset來禁止將任何變量註冊到會話範圍中,有什麼意義? – verisimilitude

+0

之後我再次開始會話,並且正如我所說的那樣,第二次以及我使用普通代碼session_start()時都正常工作。 $ av_url = $ _SESSION ['avurl']; 這也不起作用.. –

+0

您確定,您是否在任何html代碼或php輸出之前開始會話? (在每個頁面上) – YamahaSY