php4的session功能评述(一)

php4比php3新加了session的支持。稍微用了一下,对其函数接口,内部机制,  
应用的方便性做了大概的了解。  
session的意义大家都应该清楚,一个session可以包括数次http的请求和应答,  
比如我们用163.net,从login到logout或者超时就作为一个session,session  
的唯一标识一般是在系统内部生成一个唯一的session ID,一般是一个挺长的  
字符串。一个session除了session ID,还可以有自己的session data,可以  
记录和区分sesion的不同状态。

php4对session操作提供以下接口:

session_start — Initialize session data  
session_destroy — Destroys all data registered to a session  
session_name — Get and/or set the current session name  
session_module_name — Get and/or set the current session module  
session_save_path — Get and/or set the current session save path  
session_id — Get and/or set the current session id  
session_register — Register a variable with the current session  
session_unregister — Unregister a variable from the current session  
session_is_registered — Find out if a variable is registered in a session  
session_decode — Decodes session data from a string  
session_encode — Encodes the current session data as a string

意义大家一看就能明白,session_start开始一个session,session_destroy结  
束一个session,session_id取得当前的session_id,session_register向当前  
的session注册一个变量,这个很有用,比如用户逛商场,选中了某几样商品你  
就可以用session_register把商品名称或者代码register到当前的session中。

比如下面例子(摘自php manual):

<?php  
session_register("count");  
$count++;  
?>

Hello visitor, you have seen this page <? echo $count; ?> times.<p>  
# the <?=SID?> is necessary to preserve the session id
# in the case that the user has disabled cookies

To continue, <A HREF="nextpage.php?<?=SID?>">click here</A>

session_register可以隐式地激发session_start(如果用户之前没发session_
start调用),当前的session注册了一个变量count,每次用户点击click here
的时候,这个变量都会增一。你可以自己试一下。<?=SID?>的意义不多赘述。

(0)

相关推荐

  • php4的session功能评述(一)

    php4比php3新加了session的支持.稍微用了一下,对其函数接口,内部机制,  应用的方便性做了大概的了解.  session的意义大家都应该清楚,一个session可以包括数次http的请求和应答,  比如我们用163.net,从login到logout或者超时就作为一个session,session  的唯一标识一般是在系统内部生成一个唯一的session ID,一般是一个挺长的  字符串.一个session除了session ID,还可以有自己的session data,可以  记

  • php4的session功能评述(三)

    总的感觉php的session功能基本上还能用一用,还算方便,省了很多自己处理  cookie的麻烦事情.php的session管理还是基于文件的,默认的是在/tmp目录  下生成一个和session id同名的session文件,在这个文件里保存register的  session data.session有生存期,在/usr/local/lib/php.ini里可以设置. 效率应该算马马虎虎了,毕竟还是要文件操作,虽然是/tmp的.对于服务量很  大的应用会在/tmp里生成很多session

  • php4的session功能评述(二)

    比较模糊的是session_decode和session_encode: bool session_decode(string data);  session_decode() decodes the session data in data, setting variables  stored in the session. bool session_encode(void);  session_encode() returns a string with the contents of th

  • PHP封装的数据库保存session功能类

    本文实例讲述了PHP封装的数据库保存session功能类.分享给大家供大家参考,具体如下: PHP用数据库保存session类: <?php class SafeSessionHandler implements SessionHandlerInterface { public $save_path; public $session_name; public $table; public function __construct() { $this->table = new Table(&qu

  • 微信小程序实现Session功能及无法获取session问题的解决方法

    因为小程序原生不支持Cookie,因此也不支持Session. 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码. 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能. 直接上代码 function NetRequest({url, data, success, fail, complete, method = "POST", header = { 'Content-type':

  • java实现python session功能代码实例

    这篇文章主要介绍了java实现python session功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 怎么在java中实现类似于python的requests模块的session功能呢.java也是可以实现的,用java的okhttp包可以实现. 在pom.xml中加入相关依赖 <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --> <

  • springboot2如何禁用自带tomcat的session功能

    目录 禁用自带tomcat的session功能 禁用内置Tomcat的不安全请求方法 禁用自带tomcat的session功能 微服务下的各个服务都是无状态的,所以这个时候tomcat的session管理功能是多余的,即时不用,也会消耗性能,关闭后tomcat的性能会有提升,但是springboot提供的tomcat没有配置选项可以直接关闭,研究了一下,tomcat默认的session管理器名字叫:StandardManager,查看tomcat加载源码发现,如果context中没有Manage

  • 解析PHP的Yii框架中cookie和session功能的相关操作

    Sessions 和 请求 和 响应类似, 默认可通过为yii\web\Session 实例的session 应用组件 来访问sessions. 开启和关闭 Sessions 可使用以下代码来开启和关闭session. $session = Yii::$app->session; // 检查session是否开启 if ($session->isActive) ... // 开启session $session->open(); // 关闭session $session->clo

  • 使用beaker让Facebook的Bottle框架支持session功能

    bottle是一个小型web框架,很小只有一个文件,但功能确很强大,学起来也简单,简单和小巧的同时也有很多不足,某些功能支持还不是很完善,比如session.但是也有它自身的好处,我们可以自己或使用别的模块来扩展它,不像django,很强大,但是想要进一步扩展的时候确无从下手.我们可以把非常简单而强大的bottle自己动手将它变得更加强大和完善. bottle小巧支持cookie但是不支持session.为了安全起见我们有时候希望使用的session.我们可以使用中间件beaker来扩展bott

  • 详解用Redis实现Session功能

    0.什么是Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API 1.与其他用户状态保存方案比较 一般开发中用户状态使用session或者cookie,两种方式各种利弊. Session:在InProc模式下容易丢失,并且引起并发问题.如果使用SQLServer或者SQLServer模式又消耗了性能 Cookie则容易将一些用户信息暴露,加解密同样也消耗了性能. Redis采用这样的方案解决了几个问题,

随机推荐