多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 相关文章推荐
?繁体转换的class
Oct 09 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
discuz authcode 经典php加密解密函数解析
Jul 12 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
详解php语言最牛掰的Laravel框架
Nov 20 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 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
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
利用Python实现网络测试的脚本分享
2017/05/26 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
Django model update的多种用法介绍
2020/03/28 Python
python sorted函数的小练习及解答
2019/09/18 Python
python中有帮助函数吗
2020/06/19 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
Ruby如何实现动态方法调用
2012/11/18 面试题
大一学生职业生涯规划
2014/03/11 职场文书
上班旷工检讨书
2015/08/15 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书