【发布时间】:2021-11-07 14:59:00
【问题描述】:
我的目标是在不打开会话的情况下将消息传递到另一个页面,因为这会干扰其他脚本。
假设我在一页上有一个表单流程:
<?php
if ( process_form() ) {
session_start();
$_SESSION['success'] = 'The form has been saved.';
session_write_close();
header( 'Location: http://www.example.com/success.php' );
exit();
} else {
// Do something
}
?>
在第二页我尝试获取 $_SESSION 变量的内容:
<?php
// success.php
var_dump( $_SESSION ); // 1
session_start();
var_dump( $_SESSION ); // 2
session_write_close();
var_dump( $_SESSION ); // 3
?>
输出是:
- 未定义变量:_SESSION
- array(1) { ["success"]=> string(24) "表单已保存。" }
- array(1) { ["success"]=> string(24) "表单已保存。" }
为什么不先打开会话就不能读取 _SESSION 变量?
基本上在第二页上我只想从会话中读取数据而不是将其保持打开状态,这是最好的方法吗?:
<?php
// success.php
session_start();
session_write_close();
echo $_SESSION['success'];
?>
输出是:
表单已保存。
【问题讨论】: