我想了解PHP函數setcookie()和session_set_cookie_params()之間的區別。setcookie()和session_set_cookie_params()函數之間的區別
看起來兩個函數都在做同樣的任務,但setcookie()可以用來創建名爲&值的cookie。
我試圖理解PHP手冊,但沒有指出明確的差異。
由於
我想了解PHP函數setcookie()和session_set_cookie_params()之間的區別。setcookie()和session_set_cookie_params()函數之間的區別
看起來兩個函數都在做同樣的任務,但setcookie()可以用來創建名爲&值的cookie。
我試圖理解PHP手冊,但沒有指出明確的差異。
由於
setcookie()函數定義將與HTTP頭的其餘部分一起被髮送的cookie。像其他標題一樣,Cookie必須在腳本輸出之前發送(這是協議限制)。這要求您在任何輸出之前調用此函數,包括標記以及任何空格。
爲setcookie()函數是工作,你需要調用session_set_cookie_params()爲每個請求和之前在session_start()和其他類似setcookie()函數被調用。
我認爲,setcookie()和session_set_cookie_params()函數之間的區別可能是domain.com和sub.domain.com。
有兩種類型的Cookie:
會話cookie:這些都是session_set_cookie_params(),這是臨時cookie文件,當您關閉瀏覽器,將被刪除。
永久Cookie:這是setcookie()函數和這些文件留在你的瀏覽器中的一個子文件夾,直到您手動刪除或瀏覽器刪除它們基於包含在永久性Cookie中的時間週期。例如,如果你想有餅乾
被保存1周:
$remembering_timespan = time() + 7 * 24 * 60 * 60;
setcookie('test','username', $remembering_timespan);
基本上它是不一樣的。
對於setcookie
<?php
$value = 'something from somewhere';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>
您可以設置像上面,名稱和值本身超時會話。 至於session_set_cookie_params:
session_set_cookie_params(
$currentCookieParams["lifetime"],
$currentCookieParams["path"],
$rootDomain,
$currentCookieParams["secure"],
$currentCookieParams["httponly"]
);
您可以設置路徑,在這裏http://php.net/manual/en/function.session-set-cookie-params.php
cookie自身,根域,將安全級別和許多參數屆滿通過PHP的有效方法是如下:
<?php
$currentCookieParams = session_get_cookie_params();
$rootDomain = '.example.com';
session_set_cookie_params(
$currentCookieParams["lifetime"],
$currentCookieParams["path"],
$rootDomain,
$currentCookieParams["secure"],
$currentCookieParams["httponly"]
);
session_name('mysessionname');
session_start();
setcookie($cookieName, $cookieValue, time() + 3600, '/', $rootDomain);
?>
高效的編碼器確保在設置參數本身之前設置參數,所以如果用戶離開電網。 cookie本身有失效。
session_set_cookie_params(秒)
在session_start()做兩件事情,它創建存儲會話數據的服務器上的臨時文件,併發送一個cookie發送到用戶的瀏覽器。這個cookie有一個默認的過期時間,因此調用session_set_cookie_params(秒)會將cookie的默認過期時間更改爲您所定義的時間。 Cookie基本上將客戶端指向他們的會話,因此需要訪問該會話。
設置cookie的()
其中爲的setcookie()函數定義一個cookie與HTTP頭的其餘部分一起被髮送。
看起來像session_set_cookie_params()是爲服務器端和setcookie()爲客戶端。 – Shatru
session_set_cookie_params()表示選擇我們用來設置cookie的參數,它可能是我們的用戶名,或者其他東西 – 2017-02-23 06:20:01
設置cookie用於存在參數時使用 – 2017-02-23 06:20:51