您好,登錄后才能下訂單哦!
前言:之前關于客戶端cookie和服務端session的關系有點模糊,認為cookie禁用后session指定不能用了,通過驗證后才發現自己的錯誤。
1:在php環境中的php.ini中有關session的設置值:
//處理session存取的模式 session.save_handler = files //session檔案存放路徑 session.save_path = /tmp //session使用cookie的功能,啟動: 1 session.use_cookies = 1 //session名字 session.name = PHPSESSID //自動啟動;0:關;1:開啟 session.auto_start = 0 //session使用cookie的生存期,以秒為單位 session.cookie_lifetime = 0 這些默認值,不需要修改,就可以使用session了。 2:但是當我們得瀏覽器禁用cookie時,則會出現你認為的樣子,session不能用。 此時我們應該在php.ini中再去研究一下發現 session.use_trans_sid = 1//這個字段允許SessionID通過URL明文傳輸 session.use_only_cookies = 1 ; // 開啟僅使用cookies存放會話id 此時再去測試發現session又獲取到了。 但當 session.use_only_cookies =0;時,無法獲取到session的,在php.ini中這個值默認是0 3:代碼:①當瀏覽器沒有禁用cookie時: a.php: <?php session_start(); $_SESSION['url'] = ' $url = "<a href='./b.php'>下一個頁面</a>"; echo $url; ?> b.php <?php session_start(); echo "session中url是:".$_SESSION['url']; ?> ②當瀏覽器禁用cookie后,并且設置php.ini中 session.use_trans_sid = 1//這個字段允許SessionID通過URL明文傳輸 session.use_only_cookies = 1; // 開啟僅使用cookies存放會話id 代碼: a.php <?php session_start(); $_SESSION['url'] = ' $name = session_name(); $id = session_id(); $url = "<a href='./b.php?".$name."=".$id."'>下一個頁面</a>"; echo $url; ?> b.php <?php session_id($_GET['PHPSESSID']); session_start(); echo "session中url是:".$_SESSION['url']; ?>
以上是我對cookie和session的理解,如有不對,可以留言,一起學習,進步。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。