多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 相关文章推荐
图象函数中的中文显示
Oct 09 PHP
PHP编码规范-php coding standard
Mar 16 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
PHP错误提示的关闭方法详解
Jun 23 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
YII框架模块化处理操作示例
Apr 26 PHP
php服务器的系统详解
Oct 12 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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排序算法(冒泡排序,快速排序)
2012/10/09 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
JS实现瀑布流布局
2017/10/21 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
用python与文件进行交互的方法
2018/03/01 Python
Python输入二维数组方法
2018/04/13 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
python实现串口通信的示例代码
2020/02/10 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
影视动画专业个人的自我评价
2013/12/31 职场文书
婚庆司仪主持词
2014/03/15 职场文书
黄金酒广告词
2014/03/21 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
基于Python实现流星雨效果的绘制
2022/03/18 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL