iT邦幫忙

0

[PHP]session問題

2024 2022-02-17 15:34:131907 瀏覽
  • 分享至 

  • xImage

各位大大好,我想在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資訊:
https://ithelp.ithome.com.tw/upload/images/20220217/20145441DAgsoaUO2G.jpg

看更多先前的討論...收起先前的討論...
在Session存帳密???你是不是搞錯什麼了?
2024 iT邦新手 5 級 ‧ 2022-02-17 17:09:33 檢舉
抱歉,我是新手,可能真的搞錯了什麼,因為使用的人數不會超過30個,所以我以為能用SESSION
小魚 iT邦大師 1 級 ‧ 2022-02-18 08:08:14 檢舉
他只是練習而已,
不用那麼計較,
不過安全性還是要提醒一下~
nansen iT邦新手 2 級 ‧ 2022-02-18 09:19:20 檢舉
查看一下session.save_path目錄存不存在有沒有產生東西
2024 iT邦新手 5 級 ‧ 2022-02-18 09:39:45 檢舉
有存在(D:\xampp\tmp),且會生成檔案
ex:檔名sess_0k334vv1o7t67ue5on1hkoe590
裡面資料內容 : test|s:9:"abc123456";
另外也有檔名 sess_0jnk1a0kvq43r3v58m6pcmghci
裡面是完全空的沒資料
給小魚:叔叔就是年紀大愛唸。
但計較也是因為………
早點把這事放在心上,絕對有好沒壞。
叔叔太認真了。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0

你可以先試著把 try 那一支程式有關的html先全部拿掉再試試看。
我就不討論你用session存帳密的問題了。
先單純針對你SESSION的問題。

至於安全性問題,等你了解多一點PHP後再研究吧。

看更多先前的回應...收起先前的回應...
2024 iT邦新手 5 級 ‧ 2022-02-18 09:25:27 檢舉

謝謝㊣浩瀚星空㊣大大,請問大大的意思是只留

<?php
	session_start();
	$_SESSION['test']= 'abc123456';
?>

嗎?謝謝!

是的。如果還是沒有作用。
那就可能得針對你的web server的設定下手了。
因該是哪邊出問題了。造成這樣的情況。
如 tmp 目錄的權限不足等等。無法記錄session文件。

2024 iT邦新手 5 級 ‧ 2022-02-21 09:45:47 檢舉

謝謝㊣浩瀚星空㊣大大,還是一樣沒有作用,可能是我沒有把tmp放在原始路徑導致權限不足的問題

2024 iT邦新手 5 級 ‧ 2022-03-01 10:53:42 檢舉

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上。

2024 iT邦新手 5 級 ‧ 2022-03-02 13:36:54 檢舉

謝謝㊣浩瀚星空㊣大大,session.cookie_httponly設定為false一樣不行,我都是在localhost上跑的,我再去找找有關SESSION_ID的資料,再次感謝㊣浩瀚星空㊣大大!

那就最後一招啦!!!!!
XAMPP移除後重新安裝吧。
正常預設的設定理論上要可以用才對。
重安裝後,設定值先不要動再試試看吧。
有可能你已經將設定值給改壞了。

畢竟預設的TMP目錄並不在那邊。推測你有動到設定了。

記得重安裝時,不要同一個目錄。因為一般移除掉,原設定值大多會保留。除非你去手動將其目錄給刪除了。

2024 iT邦新手 5 級 ‧ 2022-03-02 15:55:05 檢舉

因為C槽快爆了,所以把XAMPP裝在D槽,想說路徑改一改應該可以,結果還是卡了...我先再別台電腦載XAMPP確定沒問題再把這邊的資料搬過去好了,怕又會被我弄壞XD
真的太感謝㊣浩瀚星空㊣大大願意花時間解決我的問題,謝謝!!!

0
小魚
iT邦大師 1 級 ‧ 2022-02-18 08:06:57

先不考慮安全性問題,
功能上我測試是可以用的,
所以程式本身是沒問題的.

2024 iT邦新手 5 級 ‧ 2022-02-18 09:37:16 檢舉

謝謝小魚大大,但是我這邊卻會跑出找不到值的錯誤訊息,可能還需要其他設定,很多文章說session.use_trans_sid必須等於1,我也有設定,不知道還有什麼問題

0
fireflybug
iT邦研究生 4 級 ‧ 2023-09-18 12:21:40

解決了
https://ithelp.ithome.com.tw/questions/10214223


結果您有解決?最近用到ROCKY LINUX + PHP 8,也遇到跨頁SESSION值帶不過去

我要發表回答

立即登入回答