多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 遍历文件实现代码
May 04 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
php缓冲输出实例分析
Jan 05 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
PHP利用二叉堆实现TopK-算法的方法详解
Apr 24 PHP
YII框架关联查询操作示例
Apr 29 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
javascript radio 联动效果
2009/03/04 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
django框架forms组件用法实例详解
2019/12/10 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python类型转换的魔术方法详解
2020/12/23 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
用友笔试题目
2016/10/25 面试题
光盘行动倡议书
2014/02/02 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
保险公司开门红口号
2014/06/21 职场文书
学校教研活动总结
2014/07/02 职场文书
节约用电倡议书
2015/04/28 职场文书