我有一个简单的HTML script
:
<form action="" method="post">
<input type="text" name="amount">
<?php echo $amountError; ?>
<input type="submit">
</form>
我用这个显示错误:
<?
$amount = $_POST['amount'];
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST['amount'])) {
$amountError = 'Empty amount';
} else {
header("Location: apmoketi.php");
}
?>
在apmoketi.php
文件中只有一行
echo $amount = $_POST['amount'];
但是,当我尝试在apmoketi.php
页面中显示数据时,我没有使用$amount
获取action=""
变量的值,而是使用action="apmoketi.php"
我可以得到它,但我的PHP
代码没有检查任何错误,为什么?
答案 0 :(得分:1)
对header("Location: apmoketi.php");
的调用使浏览器将指定的URL作为另一个完全独立的请求。这个新请求无法访问前一个请求的POST数据。
您的选择:
答案 1 :(得分:0)
当您重定向到header("Location: apmoketi.php");
时,变量不再位于$_POST[]
中,因此您需要在重定向之前设置会话变量:
$_SESSION['amount'] = $amount;
答案 2 :(得分:0)
我这样做的方式是我有一个名为action with subfiles的文件夹,让我们说这个文件中名为file2的文件发生了所有的php动作。 在我的文件夹的根目录中我有另一个名为file1的文件,在这里是html,现在我将如何做到
<form action="action/file2.php" method="post">
<input type="text" name="amount">
<?php echo $amountError; ?>
<input type="submit">
</form>