萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP學習筆記之cookie和session驗證

PHP學習筆記之cookie和session驗證

在php中cookie和session經常是配合使用的,但是cookie安全性沒有session高了,session只在服務器端而cookie在客戶端,這個自然就明白它們的區別了,但它們經常用於各種登錄驗證,下面我來介紹。

Cookie和Session算是網站登陸驗證的常用手段了。不管論壇也好,微博也好,它們都依賴於cookie和session以完成各項工作。

這裡就不具體介紹Cookie和Session的概念了,我們可以簡單的把它們理解為臨時鑰匙,用於開啟不同的網絡資源。
 

下面開始介紹在PHP裡如何操作Cookie和Session。
 

Cookie:

  在PHP裡,我們可以使用setcookie()函數來設置cookie。但特別注意,setcookie函數必須置於<html>標簽之前。setcookie函數包含了一下幾個參數:setcookie(name, value, expire, path, domain)。name參數是用來規定cookie的名稱的,而value則是規定對應名稱cookie的值,expire則是設定cookie有效期的。特別注意path和domain參數可選的。(path是規定cookie的服務器路徑,而domain是規定cookie的所有域名)。


一般我們這樣設置cookie

 
設置cookie

 代碼如下 復制代碼

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

 

username就是我們cookie的名字了,而Ku_Andrew則是username的值,time()+3600就是一小時後該cookie過期。

 

現在我們用$_COOKIE來做一個實例

 
設置、讀取cookie

 代碼如下 復制代碼

<?php  
$username = $_COOKIE['username'];  
if ($username == "")  
    {  
    setcookie("username","Ku_Andrew",time()+3600);  
    echo "we've not found your username from your cookie";  
    echo "but now we've give it to you , please refresh this page";  
    die("<a href=$PHP_SELF>kick me and refresh</a>");  
    }  
else  
    {  
    echo ("hello $usernama");  
    }  
?>  

 

如果想做出更復雜的判斷,例如用戶登陸等,我們可以在IF語句中的加入從數據庫從檢索出來的值。

 
Session:

  與Cookie不同,Session是保存在服務器上的,同時Session會隨著浏覽器的關閉而自動滅亡,生命周期較短。在PHP上,我們使用session_start()函數來啟動session;與設置cookie相同,我們必須在<html>標簽之前使用這個函數。使用這個函數之後我們就可以開始設置我們的Session變量了。方法也是極為簡單:用$_SESSION數組直接定義。完成了定義,在不使用的時候為了節約服務器資源,我們要關閉它。這時可以使用unset()函數或者session_destroy()函數;unset()是解除變量,session_destroy()則是徹底終結session。下面是代碼片段。

 
Session設置、讀取

 代碼如下 復制代碼

<?php  
session_start();  
if ($_SESSION['pid'] == "")  
{  
    $_SESSION['pid'] = 1;  
}  
else  
{  
    $_SESSION['pid'] += 1;  
}  
echo "this is your $_SESSION['pid'] times watching this page";  
?>  

 
這是一個簡單的網頁計數器,通過設置pid來實現計數。第一次判斷中,如果session為空,那麼設置成一,並且讀取session,反饋給用戶。以後的每次訪問,都會在原有session的基礎上逐次加一反饋給用戶。

copyright © 萬盛學電腦網 all rights reserved