各位大大好
小弟在撰寫公司網頁的時候發現
公司的Session可以直接以 一般變數來代替
假設現在有兩個檔案
login.php(登入頁面):
<?php
session_start();
$_SESSION['username'] = $_POST['username']; //把帳號存進session
$_SESSION['password'] = $_POST['password']; //把密碼存進session
//存進一般變數
$_user = $_SESSION['username'];
$_pw = $_SESSION['password'];
test.php(並沒有include或require任何檔案 也沒有任何POST GET):
<?php
session_start();
echo $_user;
這樣竟然有辦法呼叫得出來值
簡單一句就是"有辦法透過Session指派給一般變數 把一般變數當成session來傳遞"
想請問各位大大這是怎麼達到的?
是不是在php.ini有辦法設定呢?
register_globals ON
這個設定,但我記得這在5.3版後就被棄用了。
你的php是跑在5.2版的嘛?
這個設定為 on 後,一些原全域變成如 $_POST $_GET ...
所帶的key本身就會變成變數名。
不過上面的說法也並不能解釋為何你的 $_user 可以使用。
目前我推測可能有在其它地方用了 global 宣告了吧。
雖然你說沒有。
你可以直接輸出 $GLOBAL 看看有沒有 _user 這個key存在。
有的話就是被用 global 宣告了。
<?php
session_start();
$_user = $_SESSION['username']; //你要多寫這一行,才能把SESSION取回來...
echo $_user; <---這個只是變數
--------------請刪文--------------------