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 "成功"; } }