1、Cookie和Session簡介與區別
2、Cookie的配置與應用
3、Session的配置與應用
4、用Cookie和Session做登陸
----------------------------------------------------
1、Cookie和Session簡介與區別
PHP對cookie的接收和處理的支持非常好,完全自動。
在非常多時候,我們需要跟蹤瀏覽者在整個網站的活動,對他們身份進行自動或半自動的識別(也就是平時常說的網站登陸之類的功能),這時候,我們常采用Cookie與 Session來跟蹤和判斷。
區別
Session信息是存放在server端,但session id是存放在client cookie的,當然php的session存放方法是多樣化的,這樣就算禁用cookie一樣可以跟蹤Cookie是完全保持在客戶端的如:IE firefox 當客戶端禁止cookie時將不能再使用。
2、Cookie的配置與應用
Setcookie(string name, string value, int expire,string path, string domain, int secure);
其中name是cookie變量名稱標識,你在php中將能象使用普通變量名相同來用他引用cookie變量。
value是cookie變量的初始值,expire 表示該cookie變量的有效時間;
path 為該cookie變量的相關路徑;向下兼容,權限只在此目錄以下。
domain 表示cookie變量的網站;跨域,待研究 .07byte.com 泛解析;
secure 則需在 https 的安全傳輸時才有效。待研究 1為https
例如
SetCookie("login", "logined",time()+3600, "/forum", ".07byte.com", 1);
調用COOKIE值;
echo $_COOKIE["login"];
cookie可以是字符串,也可以是數組;
刪除COOKIE
1、SetCookie("Cookie", "");
2、SetCookie("Cookie", "value" , time()-1 / time() );
使用Cookie的限制
1、必須在HTML文件的內容輸出之前設置;
2、不同的瀏覽器對Cookie的處理不一致,且有時會出現錯誤的結果。
3、限制是在客戶端的。一個瀏覽器能創建的Cookie數量最多為30個,並且每個不能超過4KB,每個WEB站點能設置的Cookie總數不能超過20個。可以考慮靈活的用數組。
3、Session的配置與應用
session_start(); //初始化session.需在文件頭部 在start 后,session才可以開始使用;cookie可以在輸出html前,但session要在所有header文件之前。
$_SESSION[name]=value; //配置Seeeion
echo $_SESSION[name]; //使用session;cookie是生成在客戶端,第一次只是生成,第二次訪問才能生效,session配置好立馬就會生效
isset($_SESSION[name]); // 判斷
unset($_SESSION[name]); //刪除
session_destroy(); //消耗所有session
4 用戶登錄實例
session_start(); //初始化session.需在文件頭部,所有輸出前。
$_SESSION[name]=value; //配置Seeeion
echo $_SESSION[name]; //使用session
isset($_SESSION[name]); // 判斷
unset($_SESSION[name]); //刪除
session_destroy(); //消耗所有session
實例:登錄系統;
<?php
if(@$_POST["sub"]){
if($_POST["uname"] && $_POST["upsw"]){
setcookie('uname',$_POST["uname"],time()+3600);
setcookie("password",$_POST["upsw"],time()+3600);
ECHO "成功";
echo "<Script>location.href=test.php</script>";
}
}
?>
<form action="test.php" method="POST"> <INPUT TYPE="TEXT" VALUE="" NAME="uname" placeholder="uname"> <INPUT TYPE="password" VALUE="" NAME="upsw" placeholder=""> <INPUT TYPE="submit" name="sub"> </form>
寫的比較簡單,然后是關於session,可能更就簡單,注意放在最前面;
session_start(); //session_destroy(); //session_unset(); if(@$_POST["sub"]){ if($_POST["uname"] && $_POST["upsw"]){ $_SESSION["uname"]=$_POST["uname"]; $_SESSION["password"]=$_POST["upsw"]; ECHO "成功"; } }
