多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 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
两个开源的Php输出Excel文件类
Feb 08 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
codeigniter框架批量插入数据
Jan 09 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 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字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php导出excel格式数据问题
2014/03/11 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
Python3实现生成随机密码的方法
2014/08/23 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
python实现kmp算法的实例代码
2019/04/03 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
客房主管岗位职责
2013/12/09 职场文书
个人委托书格式
2014/04/04 职场文书
清明节演讲稿
2014/05/27 职场文书
努力学习保证书
2015/02/26 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
安全守法证明
2015/06/23 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏