dnf remove php 後重新安裝一次PHP,就可以了,看了一下php.ini設定發現預設值
session.use_cookies = 0
session.use_only_cookies = 0
session.use_trans_sid = 1
成功用try2.php?PHPSESSID=fi6e2hcqre565m658bo3ljjeus網址帶入SID到下一頁方式完成,但如果設定成想用COOKIE還是會失敗無法秀出 $SESSION['test']的值
session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0
Warning: Undefined array key "test" in /var/www/html/try2.php on line 5
最後還發現如果只是重啟HTTPD,php.ini的值不會被套用,要重啟 php-fpm.service 才會被套用,這大概是我之前一直測試php.ini參數都失敗的原因。
各位大大好,最近用ROCKY 9.2 + PHP 8,帶SID與值到下一個頁面,SID會更新,會話不會繼續,導致前個頁面都值不會過來,不知道是哪邊有改動需要設定?網路上查的資料都測試過了,還沒解決,看了連結文章好像也沒解決,程式碼也用下面連結的方式測試,跟連結的結果一樣。
https://ithelp.ithome.com.tw/questions/10207423
TRY.PHP
<?php
session_start();
echo session_id()."<BR>";
//echo session_save_path()."<BR>"
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>session測試第一頁</title>
</head>
<body>
<?php
//echo session_save_path()."<BR>";
$_SESSION['test']= 'abc123456';
echo $_SESSION['test']."<BR>";
//$sessid = session_id();
//echo var_dump($_SESSION);
echo '<a href="try2.php">下一個頁面</a><BR>';
//$url= '<a href="try2.php?sessid=$sessid">下一個頁面</a><BR>';
//echo $url;
?>
</body>
</html>
結果
TRY2.PHP
<?php
//session_id($_GET['sessid']);
//echo session_id()."<BR>";
session_start();
echo $_SESSION['test'];
echo session_id();
//echo var_dump($GLOBALS);
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>session測試第二頁</title>
</head>
<body>
<?php
//echo $_SESSION['test'];
//echo $test;
?>
</body>
</html>
結果
試過session.use_cookies = 1 與 session.use_only_cookies = 0 還特別試這網頁的session.use_trans_sid=0與1 與兩種模式傳到下一頁還是不行 https://www.cnblogs.com/liuxiaowei/p/7163556.html
TRY.PHP
<?php
session_start();
echo session_id()."<BR>";
//echo session_save_path()."<BR>"
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>session測試第一頁</title>
</head>
<body>
<?php
//echo session_save_path()."<BR>";
$_SESSION['test']= 'abc123456';
echo $_SESSION['test']."<BR>";
$sessid = session_id();
//echo var_dump($_SESSION);
$url= '<a href="try2.php?sessid=$sessid">下一個頁面</a><BR>';
//$url="<a href='b.php?sessid=$sessid'>下一页</a>";<br>
echo $url;
?>
</body>
</html>
結果
TRY2.PHP
<?php
session_id($_GET['sessid']);
echo session_id()."<BR>";
session_start();
echo $_SESSION['test'];
echo session_id();
//echo var_dump($GLOBALS);
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>session測試第二頁</title>
</head>
<body>
<?php
//echo $_SESSION['test'];
//echo $test;
?>
</body>
</html>
PHP SESSION設定
因為沒看到程式碼。只能大膽假設你碰到未取得或是被重置的問題。
文中有發現你說使用了SID傳送。
那就得先了解你如何去使用SID處理才行。
總之,先PO上你的程式碼再說吧。
程式碼跟連結一樣 用瞭最簡單環境測試
https://ithelp.ithome.com.tw/questions/10207423
首先,先拿掉 TRY2 的
session_id($_GET['sessid']);
echo session_id()."<BR>";
session_id完全沒必要自已傳送。
拿掉後你再檢查 session_id 是否一樣。
如果你真的要傳送。
那請你檢查一下你拿到的$_GET['sessid']是什麼。
這邊看你的程式碼,我會認為你拿到「$sessid」這個字串。
這導致無法符合現有的session_id而造成重置ID。
大大很熱心,相關文章都有大大熱心的回文討論,非常感謝,剛剛已經得到一個方式可解決,完整測試已更新原文,COOKIE模式還是無法成功。
session.use_cookies = 0
session.use_only_cookies = 0
session.use_trans_sid = 1
成功用try2.php?PHPSESSID=fi6e2hcqre565m658bo3ljjeus網址帶入SID到下一頁方式完成
先確認程式的開頭有沒有先執行 session_start()
程式碼跟連結一樣 舊程式碼<? 有補齊 <?php 都有session_start()
https://ithelp.ithome.com.tw/questions/10207423