顯示廣告
隱藏 ✕
看板 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 
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇