php跨域session
1. php 不能獲取 Session 值(跨域但在同一台伺服器上面)
我也有遇到這問題,SESSION在當前頁下能獲取值,當跳轉了一個頁面後就獲取不到了。搞得我都登錄不了後台了。。
2. thinkphp 如何子域名session跨域
給你一個方案
在A站登陸成功後,在提示頁面輸出一個<script src="B站的同步登陸api"></script>
其中 B站的同步登陸api 地址帶上用戶的ID及登陸授權參數. 然後這個API中通過用戶的ID及授權參數判斷是否合法.合法則在B站添加session 這樣就實現了同步登陸.
然後同步退出,方法也是一樣的
3. PHP session問題
setcookie ( 'PHPSESSID', session_id (), time () + $expire );
SESSION 本身就有 COOKIE 並且是同步於連接會話。不會產生跨窗口問題。但是你在這里設置了有效時間的 COOKIE 值。使得 SESSION 在生命周期內可以進行跨窗口訪問。。
之所以你在本地會正常的原因在於,本地的 COOKIE 只在當前域下作用。你應該是在本地 Apache 設置了虛擬主機。。
跟據我的測試結果。。在本地模擬 COOKIE 跨窗口、跨域操作。都被視為同一個域下的會話。即使你用三台電腦分別模似WWW伺服器,DNS伺服器,客戶機,由於它們都在同一個域下。全部無效。
所以開不同的窗口訪問,也就是新建了連接會話。記憶的 COOKIE 無效化。。而傳到伺服器以後,客戶機和伺服器不是同一個域下了。COOKIE 跨窗口生效。。
解決辦法就是。。不要給 SESSION_ID 設置有效時間。。你自己重新生成一個 COOKIE 值代替它。。或者乾脆你自己建立 SESSION 機制。用 MYSQL 或者 文件。存在伺服器上。
不建議你用這種設計思路來記住變數值。因為 SESSION 是有周期的。不可能長時間保存。。
4. PHPSESSID的問題
session好像跨域就會不同,如果跨域跳轉老的session就會丟失好像。後面的問題我就不知道了
5. php中$_session[]是什麼意思
用戶會話保存變數
1.php文件
<?php
session_start();
$_SESSION["str"]="我是中國人!!!";
?>
2.php文件
<?php
session_start();
echo $_SESSION["str"];
?>
先執行1.php,,再執行2.php,,會看到在1.php裡面設置的變數被輸出了,,就這作用,,用來保存跨域的變數
樓上說的不對,,session雖說是保存在伺服器端,,但對客戶端仍有數據發送,並且是以cookie的方式,,如果客戶端禁用了cookie,,session也是用不了的.....還有,,session也是可以造假的...並不一定百分之一百安全
6. php中 session_id() 是什麼意思
session_id()
session_id() 存取目前 session 代號。
語法: string session_id(string [id]);
本函數可取得或者重新配置目前存放 Session 的代號。若無參數 id 則表示只有取得目前 Session 的代號,加上參數則表示將 Session 代號設成新指定的 id。輸入及返回均為字元串。
輸出 session_id()
<?php
session_start();
echo session_id();
// 輸出 dqr58dnuqj2gufvg4o3tmjb9v4
?>
設置 session_id()
<?php
session_id("NowaMagic");
session_start();
echo session_id();
// 輸出 NowaMagic
?>
7. php session 作用域范圍
這因為發生跨域,所以是不能的,$_SESSION 作為超級變數是可以在整個域內進行訪問的,一旦跨域就不能夠直接訪問了,得使用其他的方法傳遞過去,比如URL後面帶著問號的方法進行GET傳遞到另一個域,然後另一個域對接收的的變數進行處理生成那個域的會話等等。