首页 > 开发 > PHP > 正文

PHP 之Section与Cookie使用总结

2024-05-04 22:28:07
字体:
来源:转载
供稿:网友
SESSION与COOKIE区别:

  Session 将信息保存在服务器上.服务器在接受到唯一的SESSION_ID后,根据这个ID获取相关数据,然后将信息传递到客户端(浏览器).
  Cookie 是将所有信息以文本的形式存在本地文件,并由客户端(浏览器)进行管理与维护.
因为Session 数据存储在server端,所以远程client无法对数据进行修改;而Cookie存储在client本地,容易被获取和篡改.所以Session安全性较高.

SESSION 介绍:

  PHP5 后session被设置为全局变量,可以通过 $_SESSION[session_id] 来获取.当页面启动SESSION会话,会在服务器中生成一个带唯一id的SESSION,这个SESSION在生命周期结束前一直有效.当关闭网页或结束生命周期后,session会在服务器中自动注销.

创建一个session 会话需要经过一下4个步骤:

  a)启动会话..
    方法有2种: bool session_star(); boolean session_register(string name);
  b)注册回话.
    会话变量被启动后,全部保全在$_SESSION数组当中.通过数组$_SESSION创建一个会话变量很简单,只需要给该数组添加一个变量即可.
  c)使用会话:
    一般操作:判断对应session_id的SESSION是否存在.不存在创建一个,存在 则通过 $_SESSION[session_id] 使用.
  d)删除会话.
unset($_SESSION[session_id]);//删除单个.
    unset([$_SESSION]);//删除整个,将禁止整个会话功能,切无法恢复.
   $__SESSION=array();//删除整个,可恢复.
   session_destroy();//结束当前会话..

SESSION的生命周期:

  1.控制session 生命周期的方法:
   一. 前提条件:客户端支持COOKIE!
    方法:
      a>通过Session来完成.
         void session_set_cookie_params(int lifetime[,string path][,string domain][,bool secure]);
         bool setcookie(string name [,string value] [,int expire] [,string path] [,sting domain] [,secure]);
      b>通过Cookie 来完成.
二. 前提条件:客户端不支持COOKIE!
     一旦客户端不支持cookie,SESSION就不能在页面间传递,解决办法:
     a>.在登陆前提示用户打开cookie.
     b>.表单POST/GET方式,来传递SESSION_ID.

     c>.设置php.ini文件中的session.use_trans_sid=1 或编译时打开-enable-trans-sid;
     d>.通过文件或数据库方式传递SESSION_ID;

服务器上对SESSION性能优化:
  在服务器中,如果将所有用户的session都保存到临时目录中,会降低服务器的安全性与效率.
  解决方法:将SESSION存储到服务器上的数据库或者临时文件中.
  临时文件:
    string session_save_path(string path);
  数据库:
    session 存储在临时文件时,当网站浏览量很大的时候,将会导致查询Session的效率很低,推荐数据库存储形式.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表