多php服务器实现多session并发运行
首先先容1下session的概念:
所谓session是微软首先提出的,在asp中最早集成。由于session的采取,大大方便了web开发员的工作。1时间asp风行全球。现在php4也加进session的支持,再度显示出open source 的强大气力。和Cookie类似,设计Session的目的也是为了在1个访问期间在不同的页面间传输数据以解决http协议无状态的题目,但Session更加简单、更加安全。Session 中文没有1个同1的译法,我习惯上译为会话。关于session的意义大家都应当清楚: 实在是在浏览某个网站时,在浏览器没有封闭的情形之下,1个web利用的开始和结束。1个session可以包括数次http的要求和应对,比如我们用freemail.263.net,从login到logout或超时就作为1个session 的生存期。每1个被创建的Session都有1个唯1的标识串,叫session ID , 这个串被发送到客户端,同时在服务器端也天生了一样唯1的标识串进口,这个标识串或放在文本文件中,或放在1个数据库中。然后程序可以在这个sessionID下注册1些Session 变量。这些变量犹如1般的变量1样可以保存文本或数值信息,可以通过Session被读出或写进。 session 的唯1标识1般是在系统内部唯1的session ID,1般是1个挺长的字符串。
题目的提出:
解了session概念后,我在为我单位编写1个进销存系统中发现需要让多个用户可以同时进进1个php利用程序。原来设计的静态的唯1的session ID导致数据混乱。这样,动态天生1个唯1的session ID成为当务之急。
解决办法很简单:我用了php文件名+时间戳为唯1的session ID,这样在我的程序中的每个session就各就各位,不再混乱了。
下面把我的源代码公布,方便也有一样的题目的朋友多1个解决方法。
//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为页面间唯1的sessionname传递变量,假设你也用到这个名字必须把上述程序做个小小的改动。Mysessionname不能为session的内部变量名,由于他在session开始之前就已存在了。Mysessionname也不能用cookie方式寄存,由于多个session肯定会覆盖掉本来的cookie文件。你可以用隐含表单的域来保存它。这样就不会有题目。欢迎来信讨论。让我们1起做得更好。
http://www.fw8.net/TAG:程序,题目,变量,标识,混乱
评论加载中...
|