PHP 尽管会话 ID 一致,但会话变量丢失
PHP Session Variables Lost Despite Consistent Session ID
到处寻找这个问题的答案,但到目前为止还没有找到答案。
我已将我的代码简化如下(运行 文件 1 然后是文件 2):
文件 1
<?php
session_start();
echo session_id();
$_SESSION[123][123] = 'Testing';
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
?>
文件 2
<?php
session_start();
echo session_id();
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
?>
文件 1 的输出是会话 ID,并正确显示新的会话变量。
文件 2 的输出是相同的会话 ID,但会话变量为空。
PHP 变量不能以数字或任何特殊字符开头(_
除外)。因此,$_SESSION[123] 或 $_SESSION["123"] 都是 invalid
对于第二部分,要在会话中接受二维数组,您必须这样做
$some_array = array('123' => 'Testing');
$_SESSION['some_common_variable_name'] = $some_array;
到处寻找这个问题的答案,但到目前为止还没有找到答案。
我已将我的代码简化如下(运行 文件 1 然后是文件 2):
文件 1
<?php
session_start();
echo session_id();
$_SESSION[123][123] = 'Testing';
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
?>
文件 2
<?php
session_start();
echo session_id();
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
?>
文件 1 的输出是会话 ID,并正确显示新的会话变量。
文件 2 的输出是相同的会话 ID,但会话变量为空。
PHP 变量不能以数字或任何特殊字符开头(_
除外)。因此,$_SESSION[123] 或 $_SESSION["123"] 都是 invalid
对于第二部分,要在会话中接受二维数组,您必须这样做
$some_array = array('123' => 'Testing');
$_SESSION['some_common_variable_name'] = $some_array;