首先介绍一下ssion的概念:
所谓ssion是微软首先提出的,在asp中最先集成。由于ssion的采用,大大方便了web开发员的工作。一时间asp风靡全球。现在php4也加入ssion的支持,再度显示出open source 的强大力量。和cookie类似,设计ssion的目的也是为了在一个访问期间在不同的页面间传输数据以解决http协议无状态的问题,但ssion怀孕早期更加简单、更加安全。ssion 中文没有一个统一的译法,我习惯上译为会话。关于ssion的意义大家都应该清楚: 其实是在浏览某个网站时,在浏览器没有关闭的情形之下,一个透视表web应用的开始和结束。一个ssion可以包括数次http的请求和应答,比如我们用freemail.263.net,从login到logout或者超时就作为一个ssion 的生存期。每一个被创建的ssion都有一个唯一的标识串,叫ssion id , 这个串被发送到客户转速单位端,同时在服务器端也生成了同样唯一的标识串入口,这个标识串或者放在文本文件中,或者放在一个数据库中。然后程序可以在这个ssionid下注册一些ssion 变量。这些变量如同一般的变量一样可以保存文本或数值信息,可以通过ssion被读出或写入。 ssion 的唯一标识一般是在系统内部唯一的ssion id,一般是一个挺长的字符串。
问题的提出:
解了ssion概念后,我在为我单位编写一个进销存系统中发现需要让多个用户可以同时进入一个php应用程序。原来设计的静态的唯一的ssion id导致数据混乱。这样,动态生成一个唯一的ssion id成为当务之急。
解决办法很简单:我用了php文件名+时间戳为唯一的ssion id,这样在我的程序中的每个ssion就各就各位,不再混乱了。
下面把我的源代码公布,方便也有同样的问题的朋友多一个解决方法。
//start a php ssion to prerve variables.
if ( empty($myssionname) ) {
$micro = microtime();
$micro = str_replace(” “,””,$micro); // strip out the blanks
$micro = str_replace(“.”,””,$micro); // strip out the p红蚂蚁eriods
雷锋的名言名句 $myssionname = “po_maint” . $micro;
}
ssion_name($myssionname);
ssion_start();
程序注释:
我用myssionname为页面间唯一的ssionname传递变量,如果你也用到这个名字必须把上述程序做个小小的改动。myssionname不能为ssion的内部变量名,因为他在ssion开始之前就已经存在了。myssionname也不能用cookie方式存放,因为多个ssion肯定会覆盖掉原先的cookie文件。你可以用隐含表单的域来保存它。这样就不会有问题。欢迎来信讨论。让我们一起做得更好。
本文发布于:2023-04-06 04:49:10,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/88e658988b350ab5f2f09ff55c63fd38.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:多php服务器实现多session并发运行.doc
本文 PDF 下载地址:多php服务器实现多session并发运行.pdf
留言与评论(共有 0 条评论) |