欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP会话管理_Session会话

程序员文章站 2022-05-01 17:24:44
...

一、了解Session

  • Session从用户访问页面开始,到断开与网站连接为止,形成Session的生命周期。用户每一次连接时,PHP都会自动生成一个唯一的SessionID以标识当前用户,与其他用户进行区分。

  • 在会话期间,PHP默认生成名为PHPSESSIONID的标识(该名称可以在php.ini文件中更改),它伴随每一个页面被送往浏览器,然后随下一次页面请求返回给Web服务器。

  • SessionID可以作为会话信息保存到数据库中,作为主键(Primary Key)来区分不同的用户,或作为服务器端的会话文件名称中的唯一字符串。

  • Session会话时,SessionID会分别保存在客户端和服务器端两个位置。在客户端,使用临时的Cookie保存在浏览器指定目录中(成为Session Cookie);在服务器端,以文本文件形式保存在指定的Session目录中。

二、启动Session

  • 通过session_start()函数创建会话

    bool session_start(void);
    说明:使用session_start()之前浏览器不能有任何输出,否则会出错。

  • 通过session_register()函数创建会话

session_register()函数用来为会话登录一个变量来隐含地启动会话,但要求php.ini文件的选项,将register_globals指令设置为’on’,重启Apache服务器。

  • 会话变量启动后,全部保存在全局数组$_SESSION[]中。通过全局数组$_SESSION创建一个会话变量很容易,只需直接给该数组添加一个元素即可。

三、应用Session

  • PHP中的Session功能强大:可以保存当前用户的特定数据和相关信息。可以保存数组、对象、字符串任意数据类型。将各种类型的数据添加到Session中,必须应用全局数组$_SESSION[]

四、删除Session

  • 删除单个会话
    删除会话变量,同数组的操作一样,直接注销$_SESSION数组的某个元素即可。

    unset($_SESSION[‘what’]);

  • 删除多个会话
    要一次注销所有的会话变量,可以将一个空数组赋值给$_SESSION

    $_SESSION = array();

  • 结束当前会话
    如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除当前的会话,并清空会话中的所有资源,彻底销毁Session。

    session_destroy();

五、Session应用

  • 通过Session控制页面访问权限。

六、Cookie与Session比较

最大的区别是:

  • Session是将信息保存在服务器上,并通过一个Session ID来传递客户端信息,服务器在接收到Session ID后根据这个ID来提供相关打的Session信息资源;
  • Cookie是将所有的信息以文本文件的形势保存在客户端,并由浏览器进行管理和维护。
  • Session在服务器存储,客户端用户无法修改Session文件内容。Cookie为客户端存储,Session要比Cookie安全得多。

以上就介绍了PHP会话管理_Session会话,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。