0

0

PHP SESSION 机制

php中文网

php中文网

发布时间:2016-06-20 12:35:51

|

1244人浏览过

|

来源于php中文网

原创

原文来自



PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。当你在浏览器访问一个网站的时候,网站的后台为你打开了一个回话,这个回话就是session。它可以存储你的一些重要的信息。它会分配给你一个ID,你何时启动它了,何时关闭它了。通过服务器上存储的信息,方便随后使用。它有这么多的好处强项。但是……当你关闭了这个网页。一切都回到了解放前,它忘记了你。唯有存储到数据库中,才能真正的做到它日后都记得你。session的工作机制是:每一个访问者都有一个唯一的ID,并且基于UID来存储信息到服务器。UID存储在cookie中,通过URL可以传导。有了这个唯一的ID,你在当前访问的网页中随处跳转它还是能够记住你的ID,从而实现给你提供你存储在服务器的准确信息(如:用户名,购物车等)。

使用session

使用session首先要确定你的服务器是否支持session。你可以通过 phpinfo()  查看PHP配置信息。找到看你的配置信息中是否存在session 模块上面的session_support 值为 enable 的则说明你能正常的使用session了。如果没有session这个模块你必须先去php.ini启用session 组件。另外。php.ini 中session.save_handle = files,才能正常的使用session。

立即学习PHP免费学习笔记(深入)”;

session_start()

session_start() 函数必须位于 标签之前,在session_start()前不允许有输出。session_start()是session机制的开始。开始之后,session会开启垃圾回收机制,因为session是存放文件当中的,则不可能不回收,否则占用太多会导致一系列的系统问题。而PHP本身的垃圾回收机制对session来说是无效的,session的回收是指删除存储的文件。session回收的概率在php.ini中有定义。session.gc_probability系统默认的是1,但是有些系统的session.gc_probability值是0,这也就是说回收的概率是0,这时系统会通过cron脚本来实现垃圾回收机制。另外,session配置项中有session.gc_maxlifetime 这么一项,这时配置session过期时长的,默认是1440,24分钟。这个不建议设置的太小,因为session回收需要根据它。session开启之后,便可以为session赋值。服务器会存储session变量。存储和取回session 变量的正确方式是使用 $_SESSION 变量。

存储Session

新添加的key值,这个值则会存储在内存当中,当脚本执行完毕后,session就会被存储到指定的session_id 文件。如果已经存在,则可能需要创建新的文件。在php.ini设定的回收时间内会销毁session_id的文件。

超会AI
超会AI

AI驱动的爆款内容制造机

下载

读取Session

读取session 方式如下:

session关键字$_SESSION['键值'];

销毁Session

删除某些 session 数据,除了可以使用 unset() ,还可以使用 session_destroy() 函数。 

案例:

利用session实现用户登录和注销session的特性之一是安全,所以用它来实现登录将会是一个很好的方案。整个登录的流程大概如下。用户进入登录页面===>>输入正确的用户账户密码===>>服务器端脚本验证成功后,开启一个session回话,存储用户ID($_SESSION['uid'])和用户名($_SESSION['user_name'])===>>跳转它网站中的其他页面,利用($_SESSION['user_name'])显示用户姓名,必要时可以通过$_SESSION['u_id']等到用户ID===>>用户退出登录( unset($_SESSION) )登录页面中包含以下代码:

登录表单

登录成功跳转之后。在其他的页面,如选购商品、生成交易订单等页面,需要用到用户信息的页面可以使用以下方式获得用户信息

 之后如果用户直接退出了浏览器,或者关闭了网站。session在指定的回收时间内,session将会自动注销回收。若是用户想要手动退出呢,可以:

这样便是一个基本的用户登录注销系统流程。其中还有很多地方可以做安全处理的。这里将不一一道来。原文来自

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

php-src源码分析探索
php-src源码分析探索

共6课时 | 0.5万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号