PHP中禁用cookie後的session

2021-06-01 12:42:27 字數 1094 閱讀 6511

我們知道當客戶端瀏覽器把cookie禁掉後,伺服器端的session是沒有辦法正常使用的。因為伺服器端的session是通過sessionid來區分不同使用者的session的,而這個sessionid就是通過客戶端的cookie傳遞到伺服器端的,更嚴格地說,因為在php使用session_start()語句後,會向客戶端傳送乙個頭部資訊,其中就指定了此次session會話的sessionid,此sessioid就是存放在客戶端的cookie中的,現在cookie禁掉後,當然就無法儲存sessionid了。

下面是session_start()的輸出的頭部資訊:

content-type:   text/html

x-powered-by:   php/4.3.3

set-cookie:   psd=9b577c86baea8a15ebe15b220ee1e180;   path=/

expires:   thu,   19   nov   1981   08:52:00   gmt

cache-control:   no-store,   no-cache,   must-revalidate,   post-check=0,   pre-check=0

pragma:   no-cache

現在可以確定把cookie禁掉後,無法使用session。那遇到這種情況,客戶就是要禁cookie,而且我們又要保證這部分使用者能正常使用,該怎麼辦呢?辦法就是使用php的output_add_rewrite_var這個函式。

這樣就不怕禁用cookie了,因為sessionid會自動跟在url後面而且form中會出現sessionid的hidden值。在伺服器端照常使用session就可以了。

測試**:test.php

<?php

session_start();

$_session['test'] = 1;

output_add_rewrite_var('phpsessid',session_id ());

echo 'link';

?>

test1.php:

<?php

session_start();

print_r($_session);

?>

php禁用cookie後session設定方法分析

我們都知道當在session 會話有基於cookie和基於url兩種傳遞sessionid的方法。為了實現客戶端禁止cookie傳送的情況也不影響客戶登陸 可以設定 php.ini中 session.use trans sid 1 表示當客戶端瀏覽器禁止cookie的時候,頁面上的鏈結會基於url傳...

禁用cookie後session的保持

我們都知道當在session會話有基於cookie和基於url兩種傳遞sessionid的方法。為了實現客戶端禁止cookie傳送的情況也不影響客戶登陸 可以設定php.ini中 session.use trans sid 1,表示當客戶端瀏覽器禁止cookie的時候,頁面上的鏈結會基於url傳遞s...

禁用cookie後session的設定

session 會話有基於cookie和基於url兩種傳遞sessionid的方法。為了實現客戶端禁止cookie傳送的情況也不影響客戶登陸 可以設定 php.ini中 session.use trans sid 1 表示當客戶端瀏覽器禁止cookie的時候,頁面上的鏈結會基於url傳遞sessio...