你能做的最好的就是把你所有的 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']); ?>
然后使用 aheader("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 输出之上。