2011-11-28 75 views
2

我寫這將啓動一個會話的simplte PHP登錄腳本:PHP沒有開始會話?

//Lets start our session 
//Create our session 
$_SESSION['token'] = md5($user['salt'].$user['user_id'].$user['username']); 
$_SESSION['id'] = $user['user_id']; 
$_SESSION['username'] = $user['username']; 
header('Location: index.php'); 
die(); 

而且對索引文件我有這樣的代碼:

if(array_key_exists('id', $_SESSION) && array_key_exists('username', $_SESSION)): 
    echo 'Welcome user'; 
else: 
    include 'login.php'; 
endif; 

每次在它的用戶登錄不啓動會話。我確保密碼和usename在數據庫上(使用我自己的驗證腳本)。任何人都可以看到我缺少的東西。

感謝

彼得

+1

你的session_start()在哪裏? –

+0

你在做 \t session_start(); –

+0

你在哪裏開始會議? – Drewdin

回答

7

你錯過了啓動會議的最重要的部分:session_start()

session_start(); 
$_SESSION['token'] = md5($user['salt'].$user['user_id'].$user['username']); 
$_SESSION['id'] = $user['user_id']; 
$_SESSION['username'] = $user['username']; 
header('Location: index.php'); 
die(); 

和索引頁面上還有:

session_start(); 
if(array_key_exists('id', $_SESSION) && array_key_exists('username', $_SESSION)): 
    echo 'Welcome user'; 
else: 
    include 'login.php'; 
endif; 
+0

廢話!當然,這就是爲什麼我應該在上午2點喝啤酒的原因!我無法相信我忘了session_start();功能!感謝隊友:) –

+0

它發生了很多次,通常我會在頭文件中開始會話,但在一些文件中不需要包含頭,所以我也做了同樣的錯誤哈哈:D –

5

添加session_start();在您所在的所有文件的頂部使用會話。

+0

廢話!當然,這就是爲什麼我應該在上午2點喝啤酒的原因!我無法相信我忘了session_start();功能!謝了哥們 :) –

1

你有你的session_start();某處?我在你的代碼示例中沒有看到它。