cookie 和session(一)

一、
1.session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经历的时间。
当登录网站的时候,启动session会话,在服务器中随机生成一个唯一的session_id 这个session_ID在本次登录结束之前在页面一直有效。当关闭页面或者执行注销操作胡,这个session_ID在服务器中自动注销。
2.创建会话四个步骤:启动会话、注册会话、使用会话和删除会话
1)启动会话:    
                    方法一:session_start()函数创建
   
   
bool session_start(void)

                    方法二:将php.ini文件中的register_globals选项之设置为on,使用session_register()函数
   
   
boolean session_register(string name)
2)注册会话
会话变量被启动以后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量,直接给数组添加一个元素即可。
   
   
<?php
session_start();        //启动session
$_SESSION["user"]=null;    //声明一个名为user的变量,并赋空值
?>
3)使用会话
   
   
<?php
    session_start();        //启动会话
    if(isset(session_id())){    //判断是否存在会话ID
            echo $_SESSION['DD'];  //存在就直接访问
        }else{
             $_SESSION['DD']="doudou";  //不存在就创建一个并且对它进行赋值为doudou
    }
4)删除会话
删除单个会话:
   
   
unset($_SESSION['user']);
删除多个会话:
   
   
$_SESSION=array();

结束当前会话
   
   
session_destroy();

1.在客户端支持cookie的前提下,控制session的声明周期
1)
  
  
void_session_set_Cookie_params(int lifetime [, string path [, string domain [, bool secure]]])
session_set_cookie_params()函数
lifetime——必要参数 cookie的生存期
path——  可省参数,cookie的有效路径
domain——可省参数,cookie的有效域
secure——可省参数,cookie在安全的范围内被发送
例:
   
   
<?php
    $time=1*60;        //设定过期时间
    session_set_cookie_params($time);    //设置     sess
      session_start();    //启动session
       $_SESSION[id]="豆豆";    //注册变量
?>
2)setCookie()函数控制session的过期时间
   
   
<?php
    session_start();    //启动session
    $time=1*60;
    setCookie(session_name(),session_id(),time()+$time,"/");    //设置session过期时间   
$_SESSION[id]="豆豆";    //注册session变量
?>    
2.session临时文件
在服务器中,如果将所有用户的session都保存到临时目录中,会降低服务器的安全性和服务器的效率,导致打开服务器所在的站点会非常的慢。解决这个问题的办法就是将session存储到数据库或者临时文件中。
完成此操作需要使用PHP中session_save_path()函数、该函数取得或者重新配置目前的session的存放路径。
   
   
string session_save_path([string path])
3、session缓存
平时我们会经常用一些清理软件清理缓存,他是什么原理呢:
session缓存就是将网页中的内容临时存储到客户端IE的Temporary Internet Files文件下,并且可以设置缓存时间。当网页第一次被浏览以后,页面的部分内容在规定的时间被临时存在客户端的临时文件夹中,这样下次访问这个页面的时候,就可以就直接读取缓存中的内容,从而提高网站的浏览效率。
1)实现session缓存功能的语法:
   
   
string session_cache_limiter([string cache_limiter])

 cache_limiter参数值的说明:nochache:不设置缓存;private: 私有方式 ; private nochache:私有方式,但不过期;public:公有方式;   

2)设置缓存时间:
   
   
int session_cache_expire([int new_cache_expire]);
cache_expire为可选的参数,单位为分钟,默认为180分钟。


4.session数据库存储
将session存储在指定的文件夹中,如果一个大型网站的访问率很高,一个月登陆了40000人,这样站点就存在了40000个session文件,如果在这40000个文件里查询一个session_id,那么速度就会特别慢,如果将session_ID放到数据库中,那么查询的速度受影响就会小很多。
将session_ID存储在数据库中的操作:
   
   
bool session_set_save_handler(string open,string close,string read,string write,string destroy,string gc);
session_set_save_handler()函数里的参数不是六个变量,而是六个函数
open(save_path,session_name)--------找到session存储地址,取出变量名称
close()--------不必要函数,关闭数据库
read(key)------读取session的键值,key 对应session_id
write(key,data)------其中data对应设置的session变量
destroy(key)-----注销session对应的session键值
gc(expiry_time)----清除过期的session记录

5、创建cookie
cookie是web服务器暂时存在用户硬盘上的一个文本文件,然后被浏览器读取。当用户再次访问web网站时,网站通过读取cookie文件记录这位访客的信息(访问位置,话费时间,用户名和密码),从而迅速做出反应。
创建cookie:
   
   
bool setCookie(string name [,string value [,int expire[, string path[,string domain[, int secure]]]]])


如果cookie被创建以后,没有设置过期时间,那么cookie文件会在浏览器关闭时自动删除。








评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值