各位大大好,我想在php中用post傳送帳號密碼到下一個頁面,之後用seeeion儲存使用者帳號密碼讓使用者不必重新登入,在google查了一些資料得知,使用session_start()即可啟用session,但是卻依然不能把值帶到下一個頁面,請問各位大大有什麼可能的原因?謝謝!!
以下是我測試session功能的程式碼:
第一頁 try.php
<?php
session_start();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>session測試第一頁</title>
</head>
<body>
<?php
$_SESSION['test']= 'abc123456';
echo $_SESSION['test'];
echo '<a href="try2.php">下一個頁面</a>';
?>
</body>
</html>
第二頁 try2.php
<?php
session_start();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>session測試第二頁</title>
</head>
<body>
<?php
echo $_SESSION['test'];
?>
</body>
</html>
錯誤訊息:
Warning: Undefined array key "test" in D:\xampp\htdocs\website_test\web_test\try2.php on line 13
php的session資訊:
你可以先試著把 try 那一支程式有關的html先全部拿掉再試試看。
我就不討論你用session存帳密的問題了。
先單純針對你SESSION的問題。
至於安全性問題,等你了解多一點PHP後再研究吧。
謝謝㊣浩瀚星空㊣大大,請問大大的意思是只留
<?php
session_start();
$_SESSION['test']= 'abc123456';
?>
嗎?謝謝!
是的。如果還是沒有作用。
那就可能得針對你的web server的設定下手了。
因該是哪邊出問題了。造成這樣的情況。
如 tmp 目錄的權限不足等等。無法記錄session文件。
謝謝㊣浩瀚星空㊣大大,還是一樣沒有作用,可能是我沒有把tmp放在原始路徑導致權限不足的問題
echo var_dump(is_writeable(ini_get("D:\xampp\tmp")));
返回 bool(false)
→ 的確沒有開啟權限
檢查你的WEB CONFIG。是不是將 HttpOnly 給打開了。
或是將PHP.INI的session.cookie_httponly = false 設定為偽。
要不然就是 localhost 來跑。(會不受 cookie 的唯讀限制)
目前看來是SESSION_ID沒自動帶過去。
你也可以找找這方面的資料。
正常SESSIONID會自動存在COOKIE上。
謝謝㊣浩瀚星空㊣大大,session.cookie_httponly設定為false一樣不行,我都是在localhost上跑的,我再去找找有關SESSION_ID的資料,再次感謝㊣浩瀚星空㊣大大!
那就最後一招啦!!!!!
XAMPP移除後重新安裝吧。
正常預設的設定理論上要可以用才對。
重安裝後,設定值先不要動再試試看吧。
有可能你已經將設定值給改壞了。
畢竟預設的TMP目錄並不在那邊。推測你有動到設定了。
記得重安裝時,不要同一個目錄。因為一般移除掉,原設定值大多會保留。除非你去手動將其目錄給刪除了。
因為C槽快爆了,所以把XAMPP裝在D槽,想說路徑改一改應該可以,結果還是卡了...我先再別台電腦載XAMPP確定沒問題再把這邊的資料搬過去好了,怕又會被我弄壞XD
真的太感謝㊣浩瀚星空㊣大大願意花時間解決我的問題,謝謝!!!
先不考慮安全性問題,
功能上我測試是可以用的,
所以程式本身是沒問題的.