作用:常用于識別用戶。
簡介:
cookie常用于識別用戶。cookie是服務(wù)器留在用戶計算機(jī)中的小文件。每當(dāng)相同的計算機(jī)通過瀏覽器請求網(wǎng)頁時候雄家,它同事會發(fā)送cookie。通過php胀滚,可以創(chuàng)建并且取回cookie的值趟济。
創(chuàng)建cookie:
setcookie()
函數(shù)用于設(shè)置cookie
注釋:setcookie()
函數(shù)必須位于<html>
標(biāo)簽之前。
語法:
setcookie(name, value, expire, path, domain);
例子:
<?php
setcookie("user", "leo", time()+3600);
?>
<html>
<body>
</body>
</html>
注釋:在發(fā)送cookie的時候,cookie的值會自動進(jìn)行URL編碼咽笼,
在取回時進(jìn)行自動解碼(為防止URL編碼顷编,請使用setrawcookie()
取而代之)。
取回Cookie的值
PHP的$_COOKIE
變量用于取回cookie的值褐荷。
在下面的例子中勾效,我們?nèi)』亓嗣麨?code>user的cookie
值,并把它顯示在了頁面上:
<?php
echo $_COOKIE["user"]叛甫;
print_r($_COOKIE);
?>
在下面的例子中层宫,我們使用isset()
函數(shù)來確認(rèn)是否已經(jīng)設(shè)置了cookie
:
<html>
<body>
<?php
if(isset($_COOKIE["user"])) {
echo "Welcome ".$_COOKIE["user"]."!<br/>";
}else {
echo "Welcom guest!<br>";
}
?>
</body>
</html>
刪除cookie:
使用過期日期變更為過去的事件點。
刪除的例子:
<?php
setcookie("user", "", time()-3600); // 將過期日期變更為過去的時間點其监。
?>
如果瀏覽器不支持cookie怎么辦萌腿?
如果你的應(yīng)用程序設(shè)計不支持cookie
的瀏覽器,你就不得不采取其他方法在應(yīng)用程序中從一張頁面向另一張頁面?zhèn)鬟f信息抖苦。一種方式是從表單傳遞數(shù)據(jù)(有關(guān)表單和用戶輸入的內(nèi)容)毁菱。
<html>
<body>
<form action="welcome.php" method="post">
Name:<input type="text" name="name">
Age:<input type="text" name="age">
<input type="submit">
</form>
</body>
</html>
取回"welcom.php"中的值米死,就像這樣:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?>.<br>
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
PHP Sessions
PHP Sessions 變量用于存儲有關(guān)用戶會話的信息,或更改用戶會話的設(shè)置贮庞。
Session變量保存的信息是單一用戶的峦筒,并且可供應(yīng)用程序中的所有頁面使用。
PHP Session變量
當(dāng)你運(yùn)行一個應(yīng)用程序時窗慎,你會打開它物喷,做些更改,然后關(guān)閉它遮斥。這很像一次會話峦失。計算機(jī)清楚你是誰。它知道你合適啟動應(yīng)用程序术吗,并在合適終止尉辑。但是在因特網(wǎng)上,存在一個問題:服務(wù)器不知道你是誰以及你做什么较屿,這個是由于HTTP地址不能維持狀態(tài)隧魄。
通過在服務(wù)器上存儲用戶信息以便隨后使用,PHP session 解決了這個問題(比如用戶名稱吝镣,購買商品等)堤器。不過淳附,會話信息是臨時的洛姑,在用戶離開網(wǎng)站后將被刪除筐钟。如果你需要永久存儲信息,可以把數(shù)據(jù)存儲在數(shù)據(jù)庫中拱撵。
Session的工作機(jī)制是:為每個訪問者創(chuàng)建一個唯一的id(UID),并基于這個UID 來存儲變量。UID 存儲在cookie中表蝙,亦或通過URL進(jìn)行傳導(dǎo)拴测。
開始PHP Session:
在把用戶信息存到PHP Session之前,首先必須啟動會話府蛇。
注釋:session_start()
函數(shù)必須位于<html>
標(biāo)簽之前:
<?php session_start(); ?>
<html>
<body>
</body>
</html>
上面的代碼會向服務(wù)器注冊用戶的會話集索,以便你可以開始保存用戶信息,同時會為用戶會話分配一個UID汇跨。
存儲Session變量
存儲和取回session變量的正確方法是使用PHP $_SESSION變量:
<?php
session_start();
// 存儲session 數(shù)據(jù)
$_SESSION['views'] = 1;
?>
<html>
<body>
<?php
// 取回session data
echo "Pageviews=".$_SESSION['views'];
?>
</body>
</html>
計數(shù)器:
<?php
session_start();
if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>
終結(jié)Session:
可以使用unset()
或者session_destory()
函數(shù)务荆。
unset()
函數(shù)用于釋放指定的session變量
<?php
unset($_SESSION['views']);
?>
或者:
<?php
session_destroy();
?>
注釋:session_destroy() 將重置session
,你將會失去所有session數(shù)據(jù)穷遂。