多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 相关文章推荐
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
PHP使用range协议实现输出文件断点续传代码实例
Jul 04 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
thinkPHP下ueditor的使用方法详解
Dec 26 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 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
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
javascript背投广告代码的完善
2008/04/08 Javascript
优化javascript的执行速度
2010/01/23 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
python访问sqlserver示例
2014/02/10 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
python实现函数极小值
2019/07/10 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技