2012-03-08 38 views
0

所以我有index.php頁面。

<?php 
session_start(); 
if (!isset($_SESSION['var1'])) { 
echo "session not started..."; 
die(); 
} else { 
echo "session started"; 
die(); 
} 
?> 

它還導致以下登錄腳本登錄表單:

<?php 
session_start(); 
include('config.php'); 
$username=$_POST['username']; 
$password=$_POST['password']; 
if($_SERVER['REQUEST_METHOD'] == "POST") { 
$result = mysql_query("SELECT ..blahblah"); 
if(mysql_num_rows($result) > 0) { 
$_SESSION['var1'] = 1; 
} 
} 
if(!isset($_SESSION['var1'])) { 
echo "wrong login or password"; 
} else { 
header("location:http://mysite.com"); 
} 
?> 

的事情是,其他頁面的變量設置,而不是index.php文件。 我不明白。不要在任何地方看到錯誤。

這裏的print_r($ _ SESSION)結果: 在其他頁面:陣列([is_logged_in] => 1) 在索引頁:陣列()

+0

'var1'從哪裏來? – PeeHaa 2012-03-08 23:23:33

+1

來自index.php的代碼也在其他頁面中? print_r($ _ SESSION)索引 – Crsr 2012-03-08 23:24:22

+0

是的,剛剛更新。 – 2012-03-08 23:24:34

回答

0

也許你從http://www.mysite.com生成你的會話,然後你重定向到http://mysite.com。 請小心會議。與www的網站。沒有不一樣的會議。

+0

謝謝,事實並非如此 – 2012-03-08 23:34:08

0

哪個變量沒有設置?我沒有在該頁面的任何地方看到$_SESSION['var1']。會話變量只有在設置後纔可用,因此您不能期望在訪問者登陸的第一頁上設置$_SESSION['is_logged_in']

0

這是PHP在index.php中的第一塊嗎?如果HTML表單在該塊之前,則PHP將無法在響應頭中發送會話cookie。