cookie是Web服務(wù)器發(fā)送給瀏覽器的一塊信息。瀏覽器會(huì)在本地文件中給每一個(gè)Web服務(wù)器存儲(chǔ)cookie。以后瀏覽器在給特定的Web服務(wù)器發(fā)請(qǐng)求的時(shí)候,同時(shí)會(huì)發(fā)送所有為該服務(wù)器存儲(chǔ)的cookie。
session是另一種記錄客戶狀態(tài)的機(jī)制。不同的是cookie保存在客戶端瀏覽器中,而session保存在服務(wù)器上??蛻舳藶g覽器訪問(wèn)服務(wù)器的時(shí)候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上,這就是session??蛻舳藶g覽器再次訪問(wèn)時(shí)只需要從該session中查找該客戶的狀態(tài)就可以了。
cookie即是傳統(tǒng)的會(huì)話控制,由于要存儲(chǔ)的信息是保存在客戶端的,所以安全系數(shù)較低,而session會(huì)話控制是將要存儲(chǔ)的信息保存在服務(wù)器上的,所以相對(duì)于cookie安全系數(shù)較高.
不論是在使用cookie方式存儲(chǔ),還是session方式存儲(chǔ)在使用存儲(chǔ)的函數(shù)之前都不能有輸出語(yǔ)句,否則會(huì)產(chǎn)生一個(gè)e級(jí)錯(cuò)誤。
使用cookie的存儲(chǔ)的方式
setcookie('cookie_name','cookie_value',cookie_time);
(免費(fèi)視頻教程推薦:php視頻教程)
使用session的存儲(chǔ)方式
session_start());
當(dāng)用戶一次執(zhí)行到session_start()這個(gè)函數(shù)時(shí),會(huì)產(chǎn)生一個(gè)session_id(),這個(gè)session_id()會(huì)復(fù)制一份,一份作為文件名,保存在服務(wù)器上,一份作為字符串保存給客戶端的session_name()的文件下,當(dāng)用戶第二次執(zhí)行到sessio_start()的時(shí)候用戶是帶著自己的session_id()多來(lái)的,然后當(dāng)我們需要使用到session的時(shí)候,客戶端會(huì)拿著自己的session_id()在服務(wù)器上找與自己手上的session_id()相匹配的session_id(),然后打開文件。
下面是index.php
<?php session_start();//用戶第一次執(zhí)行session_start()函數(shù) $_SESSION['name']='譚勇';//向session文件里面存放數(shù)據(jù) $_SESSION['age']=19;;//向session文件里面存放數(shù)據(jù) ?>
下面是index_a.php
<?php session_start();//用戶第二次執(zhí)行session_start()函數(shù) if(isset($_SESSION['name'])){ //判斷是否存在sesison,如果是就執(zhí)行當(dāng)前括號(hào)當(dāng)中的內(nèi)容 echo $_SESSION['name']; echo '<br>'; echo $_SESSION['age']; }else{ header("location:index.php");//如果不存在session則跳轉(zhuǎn)到頁(yè)面index.php } ?>
那么我們注冊(cè)了一個(gè)會(huì)話之后我們?cè)趺慈h除這個(gè)會(huì)話呢?
以下是刪除會(huì)話的代碼
<?php session_start();//開啟session if(isset($_SESSION['name'])){ unset($_SESSION['name']);//刪除$_SESSION['name']; unset($_SESSION ['age']);//刪除$_SESSION['age']; session_destroy();注銷會(huì)話 }else{ header("location:index.php");//如果不存在session則跳轉(zhuǎn)到頁(yè)面index.php } //如果你覺得我打的代碼對(duì)你有幫助,求評(píng)論,請(qǐng)注意發(fā)言的禮儀,亂說(shuō)刪評(píng)論. ?>
相關(guān)文章教程推薦:php教程