瀏覽器禁用cookie後使用session

2022-07-15 10:24:12 字數 814 閱讀 3675

php中的session在預設情況下是使用客戶端的cookie來儲存session id的,所以當客戶端的cookie出現問題的時候就會影響session了。必須注意的是:session不一定必須依賴cookie,這也是 session相比cookie的高明之處。當客戶端的cookie被禁用或出現問題時,php會自動把session id附著在url中,這樣再通過session id就能跨頁使用session變數了。但這種附著也是有一定條件的,即「php.ini中的session.use_trans_sid = 1或者編譯時開啟開啟了--enable-trans-sid選項」。那麼相應有以下3種解決方法:

1、設定php.ini中的session.use_trans_sid = 1或者編譯時開啟開啟了--enable-trans-sid選項,讓php自動跨頁傳遞session id。

2、手動通過url傳值、隱藏表單傳遞session id。 

3、用檔案、資料庫等形式儲存session_id,在跨頁過程中手動呼叫。

手動通過url傳值的例子

session.php:

<?php

if($_server['request_method']=="post")

else

?>

session.php:

<?php

if($_request["ssid"])

session_start

();

echo

$_session["tests"];

session_unset("tests");

?>

使用瀏覽器Cookie

cookie是有netscape瀏覽器1.0版引入的。netscape 的開發人員發明了cookie。1.cookie 是如何工作的?web伺服器建立乙個cookie時,乙個附加的http頭部在瀏覽器顯示頁面時被傳送到瀏覽器。http頭部類似如下形式 set cookie message hello...

瀏覽器禁用了cookie怎麼辦

在web開發過程中,cookie是我們常用的功能 最基本的用來儲存服務端返回的jsessionid來識別使用者,甚至儲存其它更多的客戶資訊。假如客戶端瀏覽器禁用了cookie,將會導致很多基於cookie的功能出現異常,甚至無法使用,作為開發者,我們怎麼來解決這種問題呢?筆者碰到的問題是在在通過se...

使用 meta 禁用瀏覽器快取

乙個最簡單的支援大部分主流瀏覽器的 headers 集如下 cache control no cache,no store,must revalidate pragma no cache expires 0http1.1中啟用cache control 來控制頁面的快取與否,這裡介紹幾個常用的引數 ...