亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP Cookie

cookie 常用于識(shí)別用戶。

Cookie 是什么?

Cookie是由服務(wù)器端生成,發(fā)送給User-Agent(一般是瀏覽器),瀏覽器會(huì)將Cookie的key/value保存到某個(gè)目錄下的文本文件內(nèi), 下次請(qǐng)求同一網(wǎng)站時(shí)就發(fā)送該Cookie給服務(wù)器(前提是瀏覽器設(shè)置為啟用cookie)。 Cookie名稱和值可以由服務(wù)器端開發(fā)自己定義,這樣服務(wù)器可以知道該用戶是否是合法用戶以及是否需要重新登錄等, 服務(wù)器可以設(shè)置或讀取Cookies中包含信息,借此維護(hù)用戶跟服務(wù)器會(huì)話中的狀態(tài)。

注意事項(xiàng):

1. 不同的電腦無(wú)法共享Cookie

2. 同一臺(tái)電腦中的不同的瀏覽器也無(wú)法共享Cookie

3. 同一個(gè)瀏覽器不同的域名下還是無(wú)法共享Cookie

4. 甚至同一個(gè)瀏覽器、同一個(gè)域名下,不同路徑的Cookie也無(wú)法實(shí)現(xiàn)共享

如何創(chuàng)建 Cookie?

通過(guò) setcookie() 函數(shù)來(lái)創(chuàng)建一個(gè) cookie ,成功返回 TRUE ,否則返回 FALSE 。

注釋:setcookie() 函數(shù)必須位于 <html> 標(biāo)簽之前。

語(yǔ)法

setcookie(name, value, expire, path, domain);

參數(shù)說(shuō)明:

參數(shù)        說(shuō)明

name    cookie 名稱    

value    可選,cookie 值    

expire    可選,過(guò)期時(shí)間,時(shí)間戳格式    

path    可選,服務(wù)器端有效路徑,/ 表示整個(gè)域名有效,默認(rèn)為當(dāng)前設(shè)置 cookie 時(shí)頁(yè)面的路徑    

domain    可選,該 cookie 有效的域名    

實(shí)例 1

在下面的例子中,我們將創(chuàng)建名為 "user" 的 cookie,并為它賦值 "php"。我們也規(guī)定了此 cookie 在一小時(shí)后過(guò)期:

<?php
   setcookie("user", "php", time()+3600);
?>

       <html>
       .....        

注釋:在發(fā)送 cookie 時(shí),cookie 的值會(huì)自動(dòng)進(jìn)行 URL 編碼,在取回時(shí)進(jìn)行自動(dòng)解碼。

實(shí)例 2

您還可以通過(guò)另一種方式設(shè)置 cookie 的過(guò)期時(shí)間。這也許比使用秒表示的方式簡(jiǎn)單。

<?php
  $expire=time()+60*60*24*30;
  setcookie("user", "php", $expire);
?>

       <html>
       .....        

在上面的實(shí)例中,過(guò)期時(shí)間被設(shè)置為一個(gè)月(60 秒 * 60 分 * 24 小時(shí) * 30 天)。

如何取回 Cookie 的值?

PHP 的 $_COOKIE 變量用于取回 cookie 的值。

在下面的實(shí)例中,我們?nèi)』亓嗣麨?"user" 的 cookie 的值,并把它顯示在了頁(yè)面上:

       <?php

       // 輸出 cookie 值
       echo $_COOKIE["user"];

       // 查看所有 cookie
       print_r($_COOKIE);

       ?>        

在下面的實(shí)例中,我們使用 isset() 函數(shù)來(lái)確認(rèn)是否已設(shè)置了 cookie:

<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<?php
if (isset($_COOKIE["user"]))
   echo "歡迎 " . $_COOKIE["user"] . "!<br>";
else
   echo "普通訪客!<br>";
?>
</body>
</html>

如何刪除 Cookie?

可以通過(guò)設(shè)置 cookie 過(guò)期時(shí)間為以前的時(shí)間點(diǎn)來(lái)刪除一個(gè) cookie :

刪除的實(shí)例:

<?php
// 設(shè)置 cookie 過(guò)期時(shí)間為過(guò)去 1 小時(shí)
  setcookie("user", "", time()-3600);
?>

提示:

由于協(xié)議限制,在設(shè)置 cookie 之前,不能有任何內(nèi)容向?yàn)g覽器輸出

cookie 不會(huì)在設(shè)置的當(dāng)前頁(yè)生效,要訪問(wèn)設(shè)置的 cookie ,必須是另一個(gè)頁(yè)面在過(guò)期之前訪問(wèn)

由于 cookie 信息存儲(chǔ)于用戶的計(jì)算機(jī)中,那么就有可能偽造 cookie 從而造成 cookie 欺騙, 一般可以對(duì) cookie 的值進(jìn)行加密來(lái)預(yù)防欺騙。讀取 cookie 的時(shí)候,對(duì) cookie 解密即可

如果瀏覽器不支持 Cookie 該怎么辦?

如果您的應(yīng)用程序需要與不支持 cookie 的瀏覽器打交道,那么您不得不使用其他的辦法在您的應(yīng)用程序中的頁(yè)面之間傳遞信息。 一種方式是通過(guò)表單傳遞數(shù)據(jù)(有關(guān)表單和用戶輸入的內(nèi)容,在本教程的前面章節(jié)中我們已經(jīng)介紹過(guò)了)。

下面的表單在用戶單點(diǎn)擊 "Submit" 按鈕時(shí),向 "welcome.php" 提交了用戶輸入:

<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<form action="welcome.php" method="post">
名字: <input type="text" name="name">
年齡: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>

取回 "welcome.php" 文件中的值,如下所示:

<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
歡迎 <?php echo $_POST["name"]; ?>.<br>
你 <?php echo $_POST["age"]; ?> 歲了。
</body>
</html>

Cookie的限制問(wèn)題

很多瀏覽器對(duì)Cookie的數(shù)量是有限制的,大多數(shù)瀏覽器規(guī)定一個(gè)網(wǎng)站可以設(shè)置的Cookie數(shù)量是不可以超過(guò)50個(gè)的, 部分瀏覽器甚至限制為30個(gè)

瀏覽器對(duì)Cookie的尺寸也有限制,一般不得超過(guò)4K大小

Cookie的安全問(wèn)題

如果在網(wǎng)吧上網(wǎng)后沒(méi)有關(guān)機(jī),其他人使用你的電腦后是可以查看到你訪問(wèn)的所有的網(wǎng)站歷史記錄以及網(wǎng)站保存的Cookie內(nèi)容的, 如果重要的數(shù)據(jù)(用戶名、密碼、卡號(hào)、手機(jī)號(hào)、身份證號(hào)……)保存在Cookie中是非常危險(xiǎn)的行為。

因此,重要數(shù)據(jù)不能存放在Cookie里,如果一定要保存還是得靠服務(wù)器


Weiter lernen
||
<?php setcookie("user", "php", time()+3600); ?>
einreichenCode zurücksetzen