多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 相关文章推荐
第九节--绑定
Nov 16 PHP
轻松修复Discuz!数据库
May 03 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
php 三维饼图的实现代码
Sep 28 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
php过滤敏感词的示例
Mar 31 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 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
Yii2中datetime类的使用
2016/12/17 PHP
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Django中的cookie和session
2019/08/27 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
英国网上购买门:Direct Doors
2018/06/07 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
精神文明建设先进个人事迹材料
2014/12/24 职场文书
公司表扬稿范文
2015/05/05 职场文书
五年级作文之想象作文
2019/10/30 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
React实现动效弹窗组件
2021/06/21 Javascript
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫