【发布时间】:2015-01-28 14:11:58
【问题描述】:
根据this bug report的说法,多次调用 session_start 和 session_write_close 会创建重复的 cookie,如果在一个大循环中多次调用,可能会损害浏览器的性能。
但是当我用下面的代码测试这个错误时,Firebug 只在“Cookies”选项卡下显示了每个 cookie 的一个副本。
<?php
session_name('uniqueName1');
session_start();
$_SESSION['Foo1'] = 'Bar1';
session_write_close();
session_name('uniqueName2');
session_start();
$_SESSION['Foo2'] = 'Bar2';
session_write_close();
session_name('uniqueName1');
session_start();
$sessionValue1 = $_SESSION['Foo1'];
session_write_close();
session_name('uniqueName2');
session_start();
$sessionValue2 = $_SESSION['Foo2'];
session_write_close();
?>
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
</head>
<body>
<p>Test</p>
<p><?php echo $sessionValue1; echo $sessionValue2; ?></p>
</body>
</html>
我是否以错误的方式查找多个 cookie,或者此错误已修复?
【问题讨论】:
-
php.net/manual/en/function.session-start.php 4.3.3 从 PHP 4.3.3 开始,在会话之前启动之后调用 session_start() 将导致 E_NOTICE 级别的错误。此外,第二个会话开始将被简单地忽略。什么都不会发生
标签: php firebug session-cookies