PHP 如何创建多个会话? [英] PHP How can I create multiple sessions?
问题描述
我希望能够在 php 中的会话之间来回切换.这是我当前的代码:
I want to be able to switch back and forth between sessions in php. Here is my current code:
<?php
session_name("session1");
session_start();
$_SESSION["name"] = "1";
echo "<pre>", print_r($_SESSION, 1), "</pre>";
session_write_close();
session_name("session2");
session_start();
$_SESSION["name"] = "2";
echo "<pre>", print_r($_SESSION, 1), "</pre>";
session_write_close();
session_name("session1");
session_start();
echo "<pre>", print_r($_SESSION, 1), "</pre>";
我想要它输出
Array
(
[name] => 1
)
Array
(
[name] => 2
)
Array
(
[name] => 1
)
但它正在输出
Array
(
[name] => 1
)
Array
(
[name] => 2
)
Array
(
[name] => 2
)
是否可以在这样的会话之间切换?我不需要同时运行两个会话,但我确实需要能够在它们之间切换.当我运行这段代码时,我得到了两个具有相同值的 cookie:session1 和 session2.
Is it possible to switch between sessions like that? I don't need two sessions running at the same time, but I do need to be able to switch between them. When I run this code, I get two cookies: session1 and session2 with the same value.
感谢您的帮助!
推荐答案
你需要使用的是 session_id()
而不是 session_name()
What you need to use is session_id()
instead of session_name()
<?php
session_id("session1");
session_start();
echo session_id();
$_SESSION["name"] = "1";
echo "<pre>", print_r($_SESSION, 1), "</pre>";
session_write_close();
session_id("session2");
echo session_id();
session_start();
$_SESSION["name"] = "2";
echo "<pre>", print_r($_SESSION, 1), "</pre>";
session_write_close();
session_id("session1");
echo session_id();
session_start();
echo "<pre>", print_r($_SESSION, 1), "</pre>";
session_write_close();
session_id("session2");
echo session_id();
session_start();
echo "<pre>", print_r($_SESSION, 1), "</pre>";
这将打印:
session1
Array
(
[name] => 1
)
session2
Array
(
[name] => 2
)
session1
Array
(
[name] => 1
)
session2
Array
(
[name] => 2
)
session_id
是会话的标识符,有助于区分会话.session_name
只是当前会话的命名别名
session_id
is an identifier for a session, which helps in distinguishing sessions. session_name
is only a named alias for the current session
这篇关于PHP 如何创建多个会话?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!