多php服务器实现多session并发运行


Posted in PHP onOctober 09, 2006

首先介绍一下session的概念:

所谓session是微软首先提出的,在asp中最先集成。由于session的采用,大大方便了web开发员的工作。一时间asp风靡全球。现在php4也加入session的支持,再度显示出open source 的强大力量。和Cookie类似,设计Session的目的也是为了在一个访问期间在不同的页面间传输数据以解决http协议无状态的问题,但Session更加简单、更加安全。Session 中文没有一个统一的译法,我习惯上译为会话。关于session的意义大家都应该清楚: 其实是在浏览某个网站时,在浏览器没有关闭的情形之下,一个web应用的开始和结束。一个session可以包括数次http的请求和应答,比如我们用freemail.263.net,从login到logout或者超时就作为一个session 的生存期。每一个被创建的Session都有一个唯一的标识串,叫session ID , 这个串被发送到客户端,同时在服务器端也生成了同样唯一的标识串入口,这个标识串或者放在文本文件中,或者放在一个数据库中。然后程序可以在这个sessionID下注册一些Session 变量。这些变量如同一般的变量一样可以保存文本或数值信息,可以通过Session被读出或写入。 session 的唯一标识一般是在系统内部唯一的session ID,一般是一个挺长的字符串。

问题的提出:

解了session概念后,我在为我单位编写一个进销存系统中发现需要让多个用户可以同时进入一个php应用程序。原来设计的静态的唯一的session ID导致数据混乱。这样,动态生成一个唯一的session ID成为当务之急。

解决办法很简单:我用了php文件名+时间戳为唯一的session ID,这样在我的程序中的每个session就各就各位,不再混乱了。
下面把我的源代码公布,方便也有同样的问题的朋友多一个解决方法。

//Start a PHP session to preserve variables.

if ( empty($mysessionname) ) {

 $micro = microtime();

 $micro = str_replace(" ","",$micro); // strip out the blanks

 $micro = str_replace(".","",$micro); // strip out the periods

 $mysessionname = "po_maint" . $micro;

}

session_name($mysessionname);

session_start();

程序注释:

我用mysessionname为页面间唯一的sessionname传递变量,如果你也用到这个名字必须把上述程序做个小小的改动。Mysessionname不能为session的内部变量名,因为他在session开始之前就已经存在了。Mysessionname也不能用cookie方式存放,因为多个session肯定会覆盖掉原先的cookie文件。你可以用隐含表单的域来保存它。这样就不会有问题。欢迎来信讨论。让我们一起做得更好。

PHP 相关文章推荐
用PHP编程语言开发动态WAP页面
Oct 09 PHP
做一个有下拉功能的留言版
Oct 09 PHP
用PHP实现递归循环每一个目录
Aug 08 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
PHP简单预防sql注入的方法
Sep 27 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP addslashes()函数讲解
Feb 03 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 PHP
php将字符串转换为数组实例讲解
May 05 PHP
提升PHP速度全攻略
Oct 09 #PHP
php4的彩蛋
Oct 09 #PHP
在PHP中使用灵巧的体系结构
Oct 09 #PHP
PHP脚本的10个技巧(8)
Oct 09 #PHP
用PHP实现小型站点广告管理
Oct 09 #PHP
一个域名查询的程序
Oct 09 #PHP
PHP脚本的10个技巧(7)
Oct 09 #PHP
You might like
SONY ICF-F10中波修复记
2021/03/02 无线电
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php实现网站留言板功能
2015/11/04 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
js常见遍历操作小结
2019/06/06 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
python控制台显示时钟的示例
2014/02/24 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
Python实现爬取并分析电商评论
2020/06/19 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
优秀高中学生评语
2014/12/30 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js