多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 heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
用php+javascript实现二级级联菜单的制作
May 06 PHP
PHP include_path设置技巧分享
Jul 03 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
PHP生成条形图的方法
Dec 10 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
PHP控制循环操作的时间
Apr 01 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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
详解如何较好的使用js
2016/12/16 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JS验证字符串功能
2017/02/22 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python实现教务管理系统
2018/03/12 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
python读写csv文件方法详细总结
2019/07/05 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
详解Python中import机制
2020/09/11 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
中专毕业生自我鉴定
2013/11/21 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
高三复习计划
2015/01/19 职场文书
公司给客户的感谢信
2015/01/23 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript