推 cloudlin322:嗯嗯~感謝~ 我試試看~ 10/29 10:18
※ 引述《cloudlin322 (麥芽糖N  ﳿ︠)》之銘言:
: 假設
: 有一個網頁 A.PHP 放在SERVER A
: 有兩個網頁 B1.PHP、B2.PHP 放在SERVER B
: A.PHP 裡面放入一個 iframe 顯示 B1.PHP ,同時會傳值ID,PW
: <iframe src=B1.PHP?ID=XXX&PW=XXX></iframe>
: B1.PHP 要檢查送來的值,若是正確則配置 SESSION 值
: B1.PHP 裡面有一個超連結連結到 B2.PHP 裡面
: B2.PHP 則要顯示出 SESSION 的值:$_SESSION['ID']、$_SESSION['PW']
: 我的問題在於
: B1.PHP 有顯示出 $_SESSION['ID']、$_SESSION['PW']
: 但是連結到 B2.PHP 之後,卻變成了空值!?
: 假如是 iframe 的問題
的確是iframe的問題,但是問題發生在你看不到的地方
為了安全,瀏覽器會把iframe裡面的cookie關掉,session本來是靠cookie來傳sid
才能辨識的。所以你需要把網址加上&SID=........等等才能讓session正常運作
在session_start()以後,可以透過SID常數取得sid=......的字串,然後加在b2.php
的超連結網址後面應該就可以了。
php.ini裡面有一個設定,叫做session.use_trans_sid,可以用他配合
url_rewriter.tags來讓上面的動作自動完成。
但是這只能處理html tag裡面包含的url,如果你還有用javascript處理,那就要想辦法
自己把sid加到網址上。
--
Sapere Aude! 這就是啟蒙運動的口號!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.166.83