多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 应用程序安全防范技术研究
Sep 25 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 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控制网页过期时间的代码
2008/09/28 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
Js切换功能的简单方法
2010/11/23 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
简单实现js浮动框
2016/12/13 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
使用python绘制温度变化雷达图
2019/10/18 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
安全检查验收制度
2014/01/12 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
将相和教学反思
2014/02/04 职场文书
环保倡议书50字
2014/05/15 职场文书
少先队工作总结2015
2015/05/13 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android