php的cookie配置和session使用

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