PHP会话技术Session

Session的应用

         Session翻译成中文是会话的意思。虽然cookie可以解决前面我们所说的问题。但是cookie有一个严重的问题,那就是存储于客户端,所以安全性不高。而且用户有权利阻止cookie使用如果用户一旦关闭cookie,那么Web服务器无法再使用cookie来跟踪用户。所以,session技术出现了。Session就是将用户的状态信息保存在服务器端。

         如果说cookie是一张会员卡,这张会员卡由用户自己保存。如果用户的会员卡丢失,用户就不能再证明自己的身份。但是session就是将这张会员卡由商场方来保存,无需用户保存,用户只需要提供卡号就可以了。

 

  设置session

Session是一种服务器端技术。默认session的有效期从开始访问网站开始,到断开和网页的链接。

使用session的时候,会生成一个sessionID,用来识别保存在服务器端的sessionID。

 

    配置信息

在PHP里面配置session可以通过PHP配置文件来进行相关的配置

Session.Auto_start:是否自动启动session,如果设置为1,则为自动启动,这个选项一般不改他它。

 

Session.cookie_lifetime:代表cookie的有效时间,单位为秒,如果值为0,代表浏览器一关闭就失效

Session.save_path:session在客户端所存储的位置

Session.name:session的名字,默认值为PHPSESSID

 

   Session的使用

如果要使用session,那么首先第一步需要开启session,开启方法很简单,在PHP里面提供了一个session_start()

该函数有两个作用,第一个是开启会话环境,第二个是检查客户端有没有发送过来sessionID,如果没有,自动生成一个sessionID,然后通过cookie的方式发送给客户端。

 

接下来第二次访问页面的时候,就会将之前保存在客户端的sessionID发送给服务器

 

通过session_id()函数可以取出session的ID信息

 

     往session里面添加数据

方法非常简单,直接像使用数组一样使用即可

 

Session存在的路径位于wamp下面的tmp文件夹,我们可以打开来确

 

    注销变量和销毁session

在PHP里面有3种删除session的方式

      删除单个的数据

Unset($_SESSION[‘key’])

 

       删除所有数据

当然是可以使用unset()来一个一个删除,但是这样太麻烦了,如果有100个数据,工作量相当之大。所以,如果要删除所有数据,可以直接将一个空数组赋值给$_SESSION

 

       结束当前会话

在PHP里面为我们提供了一个函数,叫做session_destroy(),一旦调用该函数,就会删除当前会话中的所有数据,并且注销会话,也就是说,会将sessionID也一并删除掉

 

   传递sessionID

      使用cookie进行sessionID的传递。但是这种方法并不是总是可用。因为用户可以将cookie禁止掉(这种情况很少)。所以还有一种方式:通过URL附加信息的方式

      通过URL附加信息的方式

 

Cookie和session的区别

     cookie是存放于客户端,session是存放于服务器端

     由于session是存放于服务器端,所以安全性比cookie要高

     Cookie相比session更能分散服务器的压力,因为数据都分散到了各个客户端。但是这不足以让我们完全使用cookie,因为安全性更重要。

综上所述:将很重要的用户信息存放至session,不怎么重要的信息可以存放到cookie里面。

 

posted @ 2017-08-21 00:08  电子E  阅读(141)  评论(0编辑  收藏  举报