顯示廣告
隱藏 ✕
看板 Knuckles_note
作者 Knuckles(阿德)
標題 [PHP] 詭異的 session 變數問題
時間 2009年12月24日 Thu. PM 04:27:10


剛發生了一點bug,研究了好久
在這邊記錄一下

session_start();
$tn = 0;
if(isset($_GET['tn'])) $tn = $_GET['tn'];
else if(isset($_SESSION['tn'])) $tn = $_SESSION['tn'];
echo $tn;
 
像這樣,當 $_SESSION['tn'] 有值時
最後 $tn 一樣是 0

可是當 $_GET['tn'] 有值時
$tn 就會是 $_GET['tn'] 的值

不過如果改成這樣
 
session_start();
if(isset($_GET['tn'])) $tn = $_GET['tn'];
else if(isset($_SESSION['tn'])) $tn = $_SESSION['tn'];
else $tn = 0;
echo $tn;

最後$tn就會是 $_SESSION['tn'] 的值了

所以我想是因為一般變數名稱如果和 session 陣列 的index名稱一樣會互相影響?

--
※ 來源: DISP BBS (http://disp.twbbs.org)
※ 作者: Knuckles  來自: 114.43.117.233  時間: 2009-12-24 16:27:10
※ 編輯: Knuckles  來自: 114.43.117.233  時間: 2009-12-24 16:34:44
※ 編輯: Knuckles  來自: 114.43.117.233  時間: 2009-12-24 16:39:48
※ 編輯: Knuckles  來自: 114.43.117.233  時間: 2009-12-24 16:40:20

PO在ptt的php板一下就得到解答了
php的設定檔中,register_globals 要設定成 off
本來裝linux時預設都是off的,只是自己的電腦上測試裝的appserv預設是on...

※ 編輯: Knuckles  來自: 114.43.117.233  時間: 2009-12-24 18:22:08
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 376 
※ 文章分類: 網頁程式 PHP
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續