嘛~最近在用php做网页的时候苦于每当跳转页面(即使是跳转回自己来更新显示内容)数据就会更新,看来不得不学一下session与cookie的使用了。
首先说一下session和cookie的区别吧。
简单来说,这两个是全局变量,作用范围是“该用户访问的所有php”。区别是一个存在客户端,一个存在服务器。
概念的东西不做赘述,去百度啥的都可以,直接上用法:
session:
(1)启动session:
bool session_start(); 注:该函数之前的当前页中不允许有任何内容输出,也不能出现其他Html代码
(2)注册session:
bool session_register(mixed name[,mixed…………])
(3) 调用session:
1、$_SESSION["var"] 来调用 var
2、php配置开启register_globals()开关;
直接调用 $var
(4)关闭session:
bool session_destroy(); 注:该函数将关闭所有与当前session关联的数据,但并不会注销所有session
(5)检查指定变量是否为session:
1、当session以bool session_register(mixed name[,mixed…………])语句定义时:
session_is_registered($var) 判断$var是否是session
2、当session直接以$_SESSION[]赋值时
bool isset(mixed name[,mixed…………])检查
(6)获取或设置session的保存路径
$path=session_save_path(); //获取路径,未设置时为""
$new_path="temp"
session_save_path($new_path) //设置新路径
(7)释放session变量
1、当session以bool session_register(mixed name[,mixed…………])语句定义时:
bool session_unregister(string name); //这种注销并非完全注销,只是将该变量从session列表中清除,完全注销要使用unset()。
2、当session直接以$_SESSION[]赋值时
unset(); //参数是指定变量$_SESSION[name]而不是$_SESSION,否则会将所有session注销
cookie:
(1)注册cookie
bool setcookie(string name[,string value[,int expire[,string,path[,string domain[,bool secure[,bool httponly]]]]]])
参数 | 说明 | 例子 |
name | 指定的cookie的名称 | $_COOKIE['cookiename'] |
value | 指定cookie名称的值,如果省略该值将会清空相应cookie的值 | $_COOKIE['cookiename'] |
expire | 为cookie过期时间,若省略则cookie在关闭浏览器时失效 | time()+60*60*24*30以秒数显示 |
path | 为cookie相关路径 | ‘/’ |
domain | domain指定cookie只在特定域名起作用 | example.com |
secure | secure为bool型变量,标明cookie是否只有在安全时可以传输 | true |
httponly | 是否只通过HTTP协议发送 | trun |
好烦的注册,不过一般都用不到那么多,常用的也就几个而已:拿实例说话。
<?php
$user_id="1234";
$user_name="guest";
$flag=false;
if(setcookie("user_id",$user_id))
{
if(setcookie("user_name",$user_name))
{$flag=true;}
}
?>
(2)引用cookie:
直接 $_COOKIE["user_id"]; 即可,
(3)为cookie设置生命周期:
cookie一过生命周期就会被自动删除。
$time=60*60*24 //将时间设为一天
setcookie("username","$username",$time);