程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> session 注意事項

session 注意事項

編輯:PHP綜合
1. session 與 cookie 的區別與聯系是什麼? session 能存各種數據類型。 cookie 只能存字符串。   $_SESSION 的下標只能是字符串。 $_cookie 的下標也是。     聯系:session 的 id 存在 cookie 中。   2. session 的生命周期是? 浏覽器關閉。默認的cookie生存周期是浏覽器關閉。     3. 如何持久化 session ? 設置保存 sessionID 的 cookie 生存周期。   兩種寫法: a: session_start(); setcookie('PHPSESSID', session_id(), time()+3600);  // 要寫在後面   注:session_id() 可以獲得當前的 sessionID 。   b: session_set_cookie_params(3600, '/', 'baidu.com');  // 要寫在前面 session_start();   注: 服務器端垃圾回收的時間,應該和 session 持久化時間一致!配置 php.ini: session.gc_maxlifetime = 3600   其實,session 持久化不常用,因為持久化就持久化兩方面,一個是浏覽器端 cookie ,一個是服務器端的 sessionDATA ,這樣 sessionDATA 會很多。     4. cookie 禁用,session 能否使用? 可用。 session 基於 cookie,cookie 不可用,典型的情況是 session 也不可用。 cookie不能帶數據,可以使用 get 參數把數據帶到服務器。使用 get 參數來傳遞 PHPSESSID 。不安全。只要帶上 get 參數,就不用登錄了。這個參數是自動生成的。而且,是在用戶浏覽器禁用 cookie 後才會有。沒禁用,而我又配置了 php.ini 如下,那麼優先使用 cookie 。   需要配置 php.ini:   session.use_only_cookies = 0   // 允許從url傳遞PHPSESSID, 不用cookie session.use_trans_sid = 1      // 使用url傳遞sessionID   注:    1. php 只會自動的在 html 的 a 標簽的 href 鏈接上增加 PHPSESSID 參數。header("Location: ");上的不行。php 代碼內的地址不行。但,可以自己寫上去:   header("Location: test1.php?PHPSESSID=".session_id());   2. 如果是通過表單跳轉的話,是通過 post 方式傳遞信息的。這時,php 會自動生成一個隱藏域。name = "PHPSESSID" , value = "session_id()"
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved