2013-02-11 76 views
0

我是一個初級會話。我試圖構建一個認證系統,如果用戶可以成功登錄,則會爲用戶提供一個會話,並且該會話用於識別當前用戶的身份。因此,如果登錄成功:會話不會在所有頁面中生存

$_SESSION['id'] = $username; 

包含在每次用戶通過瀏覽網頁我也把在session_start()在header.php文件。但是,在分配會話後,當我嘗試檢查它時,

isset($_SESSION['id']) 

每次都返回false。爲了維持會議,我需要做些什麼嗎? 感謝和抱歉,這是一個noobie問題。

+0

您是否啓用了'error_reporting'呢?您的瀏覽器保存什麼會話cookie?會話存儲是否填充到服務器上? – mario 2013-02-11 02:27:22

+0

'var_dump($ _ SESSION)'說什麼? – Class 2013-02-11 02:27:41

回答

1

請確保您在所有頁面的頂部撥打session_start()

See the manual for basic usage

會話都存儲爲個人用戶對一個 唯一的會話ID數據的簡單方法。這可以用來在頁面請求之間保持狀態信息 。會話ID通常通過會話cookie發送到瀏覽器 ,ID用於檢索現有會話 數據。沒有ID或會話cookie可讓PHP知道創建新會話並生成新的會話ID。

會議遵循一個簡單的工作流程。當會話開始時,PHP將 使用傳遞的ID(通常從 會話cookie)檢索現有會話,或者如果沒有會話通過,它將創建新的 會話。 PHP會在會話啓動後用任何會話 數據填充超全局$ _SESSION。當PHP關閉時, 會自動將超級全局$ _SESSION的內容, 序列化,並使用會話保存處理程序將其發送到存儲器。

默認情況下,PHP使用由 session.save_handler設置的內部文件保存處理程序。這會將會話數據保存在由session.save_path配置指令指定的 位置的服務器上。

會話可以使用session_start()函數手動啓動。 如果session.auto_start指令設置爲1,則會話將自動在請求啓動時啓動 。

執行腳本時,會話通常會自動關閉,但可以使用 session_write_close()函數手動關閉。

示例#1使用$ _SESSION註冊一個變量。

<?php 
session_start(); 
if (!isset($_SESSION['count'])) { 
    $_SESSION['count'] = 0; 
} else { 
    $_SESSION['count']++; 
} 
?> 
相關問題