ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
cookie是存储在用户客户端的,而session是存储在服务端的,session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。 当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。 通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。 第一步:开始session会话控制: Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。 把用户信息存储到 PHP session 中之前,首先必须启动会话。session_start() 函数必须位于 <html> 标签之前。 例如: <?php session_start(); ?> <html> <head> </head> <body> </body> </html> 上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个唯一的 UID。 第二步:存储 Session 变量: session变量类似于一个关联数组,可以为其添加元素,比如: <?php session_start(); $_SESSION['webname'] = 'fxxy'; $_SESSION['weburl'] = 'www.baidu.com'; echo $_SESSION['webname'];//fxxy ?> 第三步:删除session变量和session文件: session不可能永远的存放在服务端,否则用户访问量很大的时候,会消耗内存空间,也会浪费服务器磁盘空间。当用户访问完毕或主动退出登录的时候就需要删除session变量,方法如下: session_start(); $_SESSION['webname'] = 'fxxy'; $_SESSION['weburl'] = 'www.baidu.com'; echo $_SESSION['webname']; session_unset();//将内存中的变量全部删除 session_destroy();//将sessionid对应的文件删除 setcookie(session_name(),'',time()-1,'/');//卸载cookie echo $_SESSION['webname']; 其中session_unset()必须放在session_destroy()的前面,因为session_destroy()是删除存放在服务器上的session文件,如果先执行它的话,等到执行session_unset()的时候就找不到对应的sessionId导致报错!