php服务器实现多session并行

session|服务器

【摘 要】 解了session概念后,我在为我单位编写一个进销存系统中发现需要让多个用户可以同时进入一个php应用程序。原来设计的静态的唯一的session ID导致数据混乱。这样,动态生成一个唯一的session ID成为当务之急。
  所谓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-10-16 22:13:35

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

多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,你没有授权,你连接服务器,是否有合法的帐户权限等.

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

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

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

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

如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO)

如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO)   Apache Session复制: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html   使用Memcached来共享PHP Session: https://www.digitalocean.com/community/tutorials/how-to-share-php-sessions-on-multiple-memcache

asp.net页面状态管理cookie和服务器状态管理Session

Cookie:是存储在客户端文件系统的文本文件中或客户端浏览器对话的客户端浏览器对话的内存中的少量的数据.当我们在访问一个网站网页,当用户请求该网页时,应用程序会首先检查用户在此前是否已经登录过,我们可以通过读取Cookie获取用户信息来判断是否让它继续访问 记录Cookie信息 创建一个名称是user的Cookie对象:HttpCookie cookie=new HttpCookie("user"); 给Cookie赋值,只能使用字符串赋值:cookie.Value="ch

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

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

如何得到服务器所有用户Session

问题描述 我想得到服务器中所有在线用户的Session ,并可以指定关闭哪个Session,不知怎么实现(主要是想实现,用户重复登录的问题,就当一个帐号重复登录时,把第一个账户的Session关闭,就像QQ那样) 解决方案 用HttpSessionListener,实现create和destroy方法,然后再applicationContext中创建一个HashMap来保存创建出来的session,在session创建时把session存进去,在session销毁时把session删掉,你统计a

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

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