【前言】
本文主要总结下PHP里Session相关知识
【概论】
使用PHP应用session时,将session中的数据存储在服务器上,然后通过客户端传来的sessionID识别客户端的信息,并提取信息。
php中的session的常用操作:session的写入、读取、注册与删除。
(1)session的初始化
标记session使用开始的函数是session_start,session_start函数用于初始化session变量。语法如下:
session_start();
返回值为true
(2)session的写入和读取
在PHP中,session的使用是通过超全局变量$_SESSION的调用和读取来完成
【列表】
(1)简介;(2)由来;(3)工作机制;(4)开启会话;
(5)存储和获取;(6)存储获取Session案例;(7)删除 / 释放Session
【详解】
(1)简介
session变量用于存储有关用户会话的信息,或更改用户会话的设置。Session变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用
(2)由来
当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果需要永久储存信息,可以把数据存储在数据库中
(3)工作机制
为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过URL进行传导
(4)开启会话
在把用户信息存储到session中之前,首先必须启动会话。启动会话session_start() 函数必须位于 <html> 标签之前:
<?php session_start(); ?> <html> <body>...</body> </html>
上面的代码会向服务器注册用户的会话,以便开始保存用户信息,同时会为用户会话分配一个UID
(5)存储和获取
用$_SESSION超全局变量可以存储和获取session变量
<?php session_start(); $_SESSION['views']=1;// 存储Session ?> <html> <body> <?php echo "Pageviews=". $_SESSION['views'];//获取Session ?> </body> </html>
注意:在其他页面获取前,首先要启动会话session-start();
(6)存储获取Session案例
下面创建一个简单的页面计数器案例
isset() 函数检测是否已设置 "views" 变量,如果已设置 "views" 变量,便累加计数器。如果 "views" 不存在,则创建 "views" 变量,并把它设置为 1:
<?php session_start(); if(isset($_SESSION['views'])){ $_SESSION['views']=$_SESSION['views']+1; }else{ $_SESSION['views']=1; echo "Views=". $_SESSION['views']; } ?>
(7)删除 / 释放Session
如果想删除某些session数据,可以使用unset()或session_destroy()函数
unset() 函数用于释放指定的 session 变量:
<?php unset($_SESSION['views']); ?>
也可以通过 session_destroy() 函数彻底终结 session:
<?php session_destroy(); ?>
区别:
①unset() 函数用于释放指定的 session 变量
②session_destroy()将重置session,失去所有已存储的 session 数据
针对这个区别,我做了一个案例
<?php session_start(); ?> </head> if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo "数量=". $_SESSION['views']."<br>"; ?> <?php $_SESSION['name'] = 'Tony'; echo "名字是=". $_SESSION['name']."<br>"; ?> <a href="./demo.php">页面2</a>
<?php session_start(); ?> <a href="./index.php">链接</a><br> <?php echo "数量=". $_SESSION['views']."<br>"; echo "名字是=". $_SESSION['name']; ?> <?php //unset($_SESSION['views']); //unset($_SESSION['name']); session_destroy(); ?>
【案例】
(1)注册页面:
在网站的页面中,在注册页面对$_SESSION数组进行赋值,在其他的页面中对$_SESSION数组进行读取
注册页面中的session,例如:
<?php session_start(); $_SESSION['Name']= "Tony"; ?>
其他页面中的session,例如:
<?php session_start(); echo $_SESSION['Name']; ?>
依次运行,结果是:Tony
(2)投票
<?php if(isset($_POST['submit'])){ session_start(); //开始建立一个会话 $_SESSION['season'] = $_POST['season']; //存储会话数据 header("Location: demo2.php"); //应特别注意header()里的格式问题 } ?> <b>存储会话</b> <hr/> 选择需要设置的数据: <form name="form1" method="post" action="" id="form1" > <select name="season" id="season_select" > <option value="">无数据</option> <option value="春天">春天</option> <option value="夏天">夏天</option> <option value="秋天">秋天</option> <option value="冬天">冬天</option> </select> <br/> <br/> <br/> <input type="submit" name="submit" value="submit"/> </form>
<?php session_start(); //建立或者继续一个会话 $season = $_SESSION['season']; //读取会话数据 echo "<b>读取会话</b><br/><br/>"; switch ($season) { case '春天'; echo '现在是绿意盎然的春天!'; break; case '夏天'; echo '现在是热情四溢的夏天!'; break; case '秋天'; echo '现在是丰收果实的秋天!'; break; case '冬天'; echo '现在是白雪皑皑的冬天!'; break; default ; echo '对不起,会话中没有数据 或者 不存在该对话 !'; } ?>
.
相关推荐
总结来说,理解并灵活运用PHP的Session设置至关重要,它涉及到Session数据的存储位置、过期策略以及在多服务器环境下的管理。通过正确配置和编程技巧,开发者可以有效地控制Session的生命周期,从而优化用户体验和...
总结来说,PHP的跨域提交和伪造SESSION是Web安全的两大主题。开发者必须熟悉这些概念,理解其工作原理,并采取相应的防护措施。同时,通过学习和实践,可以提升自身在Web应用开发中的安全意识和技术水平。
总结,处理PHP Session时,应确保正确地启动、设置、清除和销毁session。在遇到问题时,应检查服务器环境、session配置、cookie处理以及可能的外部影响因素,如缓存和CDN。只有全面理解并掌握这些知识点,才能有效地...
### PHP5 Session 详解 #### 一、Session 的概念与作用 **Session** 在中文中通常被称为“会话”,它的本意是指从一系列有始有终的动作或消息组成的一个完整过程,例如打电话从拨号到挂断电话的过程。在网络开发...
总结来说,要严格控制PHP中的session过期时间,需要综合考虑客户端cookie的生命周期、服务器端的垃圾回收机制以及代码层面的session检查。理解这些机制可以帮助开发者更好地管理和维护用户的会话状态,提供更加安全...
总结起来,这个实例展示了如何结合使用PHP Session和Cookie进行会员登录验证。Session用于在服务器端存储用户信息,确保安全性,而Cookie则可以用来控制用户在一段时间内的登录状态。实际应用中,应考虑使用更安全的...
### PHP5 Session 详解 #### 一、HTTP 协议与 Session 的必要性 HTTP(HyperText Transfer Protocol)协议作为 Web 服务器与客户端之间通信的基础协议,其本质特征之一是无状态性。这意味着每次 HTTP 请求都是独立...
总结来说,PHP中的Session机制提供了一种安全、高效的方式来管理用户会话,尤其是在处理用户登录验证和其他需要跨页面保持状态的场景中。了解并熟练运用Session,对于提升网站或应用程序的安全性和性能至关重要。
总结起来,JavaScript操作Session的关键在于利用表单提交或Ajax通信与服务器进行交互。虽然JS直接修改服务器端Session有困难,但通过以上方式可以巧妙地实现数据在客户端和服务器之间的传递,从而达到管理Session的...
总结一下,通过PHP和Session,我们可以实现一个简单的登录记忆功能。核心步骤包括:验证用户身份后将用户标识存储到Session,检查Session状态以确定用户是否已登录,以及在用户登出时清理Session信息。这只是一个...
总结,PHP的session机制为Web应用程序提供了高效且安全的方式来跟踪用户会话。理解和正确使用session是构建功能丰富的交互式网站的关键。通过了解其原理、配置和安全措施,开发者可以更好地利用这一工具来提升用户...
总结起来,session和cookie是Web开发中不可或缺的工具,理解它们的运作机制和优缺点,能帮助开发者设计出更安全、高效的Web应用。在“php.itcast.cn”的PHP课程中,通过韩忠康老师的讲解,你可以更深入地学习这两个...
总结起来,EXT中的Session失效页面跳转涉及到前后端的协同工作。前端EXT应用需要监听和响应Session失效的事件,而后端服务器则需要正确地管理和验证Session状态。这种机制确保了用户的会话安全,防止了未经授权的...
3. **自定义Session处理函数**:PHP提供了`session_set_save_handler()`函数,允许开发者自定义Session的读取、写入、创建、删除等操作。这对于实现跨域名Session共享非常重要,因为可以借此机会实现对Session数据的...
### PHP Session 会话处理详解 #### 一、引言 在互联网应用开发中,保持用户的登录状态或个性化设置是一项常见的需求。然而,由于HTTP协议的无状态特性,服务器难以跟踪用户的行为。PHP Session机制正是为了解决这...
总结起来,清空Session是Web应用中确保用户安全注销的重要步骤。这个过程涉及获取Session,检查其存在性,清空Session数据,以及可能的Cookie清理和页面重定向。不同编程语言中实现这一功能的方法有所不同,但核心...
2. **PHP**:通过`session_start()` 开启Session,`$_SESSION['key'] = 'value';` 存储数据,`echo $_SESSION['key'];` 获取数据,`session_destroy()` 销毁Session。 3. **Python (Flask/Django)**:Flask中,可以...
两种情况:一种9streets.cn和a.9streets.cn之间,另一种是a.com b.com之间,这几天总结了一下处理方法。 方式一: 在一,二级域名下调用如下代码: <?php include("DBsession.php"); $_SESSION['usssser_oke'] ...
总结,session共享是多服务器环境中的关键问题,memcache和Redis都是有效的解决方案。通过将Session数据存储在这些内存数据库中,我们可以确保在不同服务器之间的一致性和高可用性。实现这一目标通常涉及自定义PHP的...