多php服务器实现多session并发运行

session|服务器

首先介绍一下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文件。你可以用隐含表单的域来保存它。这样就不会有问题。欢迎来信讨论。让我们一起做得更好。

时间: 2024-11-05 16:35:18

多php服务器实现多session并发运行的相关文章

多php服务器实现多session并发运行_php基础

首先介绍一下session的概念: 所谓session是微软首先提出的,在asp中最先集成.由于session的采用,大大方便了web开发员的工作.一时间asp风靡全球.现在php4也加入session的支持,再度显示出open source 的强大力量.和Cookie类似,设计Session的目的也是为了在一个访问期间在不同的页面间传输数据以解决http协议无状态的问题,但Session更加简单.更加安全.Session 中文没有一个统一的译法,我习惯上译为会话.关于session的意义大家都

php实现多session并发运行

session 首先介绍一下session的概念: 所谓session是微软首先提出的,在asp中最先集成.由于session的采用,大大方便了web开发员的工作.一时间asp风靡全球.现在php4也加入session的支持,再度显示出open source 的强大力量.和Cookie类似,设计Session的目的也是为了在一个访问期间在不同的页面间传输数据以解决http协议无状态的问题,但Session更加简单.更加安全.Session 中文没有一个统一的译法,我习惯上译为会话.关于sessi

多Web服务器之间共享Session的解决方案

很多开发中涉及到用户的Session验证很保留的问题,这个问题比较有意思,总结了几种方案,只供参考. [  问题提出 ] 为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session? (以下描述方案只是针对Linux/Unix + Apache + Mysql + PHP的开发架构,当然,也可以扩展到其他平台.) [  问题解决方案 ]

获得 ession 报错-创建Connection对象连接服务器后获得Session 报错

问题描述 创建Connection对象连接服务器后获得Session 报错 创建Connection对象连接服务器后 获得Session 报错 cannot open session,connection is not autoenticated 解决方案 is not authenticated,你没有授权,你连接服务器,是否有合法的帐户权限等.

atl dcom服务-vs2013 ATL DCOM服务器程序在本机运行正常,在其他机器不能运行,运行库已经安装

问题描述 vs2013 ATL DCOM服务器程序在本机运行正常,在其他机器不能运行,运行库已经安装 我的机器win7_32bit的, DCOM服务在本机正常,在其他机器(也是win732)上不能运行, 运行库安装,注册正常,点击exe没有任何提示,也没有出现任何错误窗口提示.DCOM服务 就是没有运行起来. extern "C" int WINAPI _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPT

linux网络编程-普通pc单机下做个服务器,每秒并发量最多能做到多少?

问题描述 普通pc单机下做个服务器,每秒并发量最多能做到多少? 条件是普通pc机配置下,配置大概可以i5处理器,8G内存. 你们做过的最大并发量有多少,用什么服务器设计模型? 解决方案 看业务,看配置,如果纯网络io的话,20000+吧

ios开发-服务器使用cas,发送请求总是返回错误,服务器那边说是session失效

问题描述 服务器使用cas,发送请求总是返回错误,服务器那边说是session失效 正在做的一个app,服务器端用的是cas client,我发送请求,总是返回html的提示登录的信息,实际上是登录了的,服务器说是session失效了,让我做session的保持.我在网上搜,只看到了java和安卓有session保持,找不到ios的.以前也没有遇到过url放在浏览器里面可以获取数据,用代码请求就返回错误的情况.求帮助

方法-java怎么用多线程并发运行for?

问题描述 java怎么用多线程并发运行for? 如果把下面的改成十个线程并发运行不同的for语句,,就我最下面写好的那个方法,参数用定义好的数组里面的十个int变量,请问要怎么写? public static void main(String[] args) { for(Thread t:getThreads()){ t.start(); } } public static Thread[] getThreads(){ Thread[] thread = new Thread[10]; for(

ASP.NET实现跨子站点和跨服务器之间的session共享

问题描述 请问,在ASP.NET系统中,如何实现二级域名子站点和跨服务器之间的session共享呢?求指点. 解决方案 解决方案二:估计不能,还是估计不能.解决方案三:cookies可以二级域名共享HttpCookiecookies=newHttpCookie();cookies.Domain="baidu.com";解决方案四:引用2楼liuchaolin的回复: cookies可以二级域名共享HttpCookiecookies=newHttpCookie();cookies.Dom