<p>1、在session_start() 前設置session_name(); 例子: string session_name([string $name]) 說明: PHP會話控制之如何正確設置session_name 定義: string session_name([string $name]) 說明: 在php.ini中配置爲:session.name = PHPSESSID 在請求開始的時候,會話名稱會被重置並存儲到session.name配置項。 因此要想在不改變php.ini配置文件的狀況下,更改session_name 必需要在 session_start()或 session_register()以前設置session_name。 代碼演示: [ 先啓動會話,再設置session_name] <?php /** * 深刻理解PHP會話控制 * User: gutops */ //啓動新會話 session_start(); //設置session_name session_name('PHPSESSID_NEW'); echo session_name(); //輸出爲PHPSESSID_NEW 這樣sesssion_name並未改變,查看瀏覽器cookies name爲PHPSESSID(php.ini中默認設置的session.name) [ 先設置session_name 再啓動會話(正確的修改方式)] <?php /** * 深刻理解PHP會話控制 * User: gutops */ session_name('PHPSESSID_NEW'); session_start(); echo session_name(); //輸出爲PHPSESSID_NEW 查看瀏覽器cookies,能夠看到name變爲PHPSESSID_NEW 2、如何應用呢 方法一、可經過token ,將session_id 存入token,每次請求帶回 1.前端傳帳號密碼給後端 2.後端將帳號密碼做處理加密生成token,並返回給前端 3.前端將token存入緩存,在每次請求時,在header或url中將token傳給後端 4.將前端傳來的token與數據庫帳號密碼生成的token做比對,相等則成功。 方法2: 可在session_start();前, 經過$_COOKIE['你的session_name名稱'] 來獲取session_id ************** 接着搞: 拿到session_id後,經過session_id(你的sessionid); 告訴session你要使用sessionname名字爲你剛設置的session了。 注意設置session_id(); 必須在session_start()前,這和設置session_name()是同樣的, 而後你var_dump($_SESSION); 就能看到你設定的session_name的全部session了。