-1

这段代码:

<?php

session_name('sess1');
session_start();
$_SESSION['a']=1;
session_write_close();

session_name('sess2');
session_start();
$_SESSION['b']=2;
session_write_close();

session_name('sess1');
session_start();

echo '<pre>';
print_r($_SESSION);
echo '</pre>';

?>

印刷:

Array
(
    [a] => 1
    [b] => 2
)

如您所见,两个 vars r 都存储在第一个会话(文件)中。

我需要并期望另一种行为。我需要两个不同的会话。

为什么php的行为如此?这不是一个错误吗?

4

1 回答 1

1

[来自评论] 我希望其他人可以将其包含在他们的程序中,而不会干扰他们自己的会话。

您想通过大规模干扰会话处理来实现这一目标……?

我不认为这是一个好主意。当你以这种“非正统”的方式玩会话时,你很可能会增加用户在会话中遇到的问题。

我的会话也有自己的设置(如 cookie_lifetime),我不想干扰使用我系统的其他程序的会话。

为什么我嵌入到页面中的登录系统的会话生命周期与我对会话的其余部分的会话生命周期不同?对我来说意义不大。

我开发了一个注册和登录系统,它有自己的会话(实际上会话内容是透明加密的)。

如果在将会话的其余部分保留为纯文本的同时保持数据加密是您的主要关注点——那么您可以轻松地在会话数组中生成自己的密钥,并且只加密驻留在该密钥下的数据。

于 2013-03-19T16:40:39.947 回答