作者applerev (我要一杯冰拿鐵不加糖)
看板PHP
標題[請益] SESSION
時間Thu Sep 11 18:46:21 2008
index.php的部分內容
ob_start();
session_start();
session_register("user_login");
$_SESSION["user_login"] = $account;
session_register("user_level");
$_SESSION["user_level"] = $rs->fields['level'];
echo "<p>get database level > ".$rs->fields['level']."</p>";
echo "<p>get session level > ".$_SESSION["user_level"]."</p>";
header("refresh: 5; url=menu.php");
menu.php的部分內容
ob_start();
session_start();
if ((! session_is_registered("user_login")) or (! session_is_registered("user_level"))){
echo "session not registered";
exit;
}
else{
echo "<p>你的帳號是".$_SESSION["user_login"]."</p>";
echo "<p>你的level為".$_SESSION["user_level"]."</p>";
}
其他不相關的地方就省略了
假定我輸入的使用者帳號是tony
而在資料庫中level欄位中所取得的值為20
理想的執行結果會是
(轉頁前)
get database level > 20
get session level > 20
(轉頁後)
你的帳號是tony
你的level為20
但是實際執行卻是
(轉頁前)
get databese level > 20
get session level > 20
(轉頁後)
你的帳號是tony
你的level為
轉頁前可以取得兩個的值
但是轉頁後卻無法取得$_SESSION["user_level"]
如果將
$_SESSION["user_level"] = $rs->fields['level'];
改為
$_SESSION["user_level"] = 123456;
的執行結果卻是
(轉頁前)
get database level > 20
get session level > 123456
(轉頁後)_
你的帳號是tony
你的level為123456
順利取得了SESSION值
請問一下這個的問題是出在哪裡呢?
--
某夜市裡... ◢███◣
≡ ◥ 暗!靶心那麼小
如果你願意 我的GAS 將只屬於你 -⊙-⊙— 老闆你欠炸嗎?
╭ ╭ 皿 ◢
│ <──<<< ─────────────│ ◣︶ ◤
│ BOOMBOOMBOOMψQSWEET╰◣ 柏油 ◢ boyo
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.14.7.104
推 chph :檢查 $rs->fields['level']是否有資料 09/11 20:28
→ applerev :index的倒數2和3行即是 09/11 21:03
推 dumplingman :我比較好奇的是header前有輸出不會有warning嗎? 09/12 00:14
→ applerev :沒出現呢 09/12 11:34
推 aquarianboy :有ob_start()啊 :) 09/12 11:40
→ applerev :樓上的意思是@@? 09/12 13:10
→ aquarianboy :有php官網可以查不是嗎? :) 09/12 13:41
→ aquarianboy :喔,我是指回dumplingman說沒warning的那個原因.. 09/12 13:42
推 arrack :同1F $rs->fields['level'] 有資料嗎? 09/14 03:17
→ applerev :是指還在index.php的時候嗎? 是的話的確有資料 09/14 23:31