你能做的最好的就是把你所有的 POST 变量放到一个这样的会话中:
在 page1.php 上放:
//Start the session
session_start();
//Dump your POST variables
$_SESSION['post-data'] = $_POST;
然后在 page2.php 上放:(如果在 page1.php 上我们使用普通的 POST 表单提交表单 action="page2.php")
//Start the session
session_start();
//Access your POST variables
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
//Unset the useless session variable
unset($_SESSION['post-data']);
或者在 page2.php 上输入:(如果在 page1.php 上我们使用表单 action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> 进行自我提交,然后使用 header("Location: page2.php"); 移动到 page2.php 并传递我们的 POST通过会话变量)
//Start the session
session_start();
//Access your POST variables
$_POST = $_SESSION['post-data'];
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
unset($_SESSION['post-data']);
我确实花了好几个小时才弄清楚这一点,因为所有的论坛都把它弄错了或不完整。
现在就像调用从 page1.php 传递的变量一样简单,例如:<b>Points: </b><?php echo $points; ?> 就是这样!!
当将header('Location: page2.php'); 置于if 等条件中时,请确保它将位于页面的第一个PHP 脚本中并且位于任何HTML 输出之上。