多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 相关文章推荐
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
php下检测字符串是否是utf8编码的代码
Jun 28 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
PHP自定义多进制的方法
Nov 03 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
PHP dirname简单使用代码实例
Nov 13 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python实现整数的二进制循环移位
2019/03/08 Python
python 实现字符串下标的输出功能
2020/02/13 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
神路信息Java面试题目
2013/03/31 面试题
技术人员面试提纲
2013/11/28 职场文书
服装采购员岗位职责
2014/03/15 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
实习证明格式范文
2014/10/14 职场文书
网络营销计划
2015/01/17 职场文书
新教师教学工作总结
2015/08/12 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python