PHP错误未显示

时间:2016-06-24 21:59:59

标签: php html

我有一个简单的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代码没有检查任何错误,为什么?

3 个答案:

答案 0 :(得分:1)

header("Location: apmoketi.php");的调用使浏览器将指定的URL作为另一个完全独立的请求。这个新请求无法访问前一个请求的POST数据。

您的选择:

  1. 使用include,因此 apmoketi.php 可以访问当前脚本的变量
  2. 使用sessions保存请求之间的数据
  3. 使用查询参数来传递值:

    header('Location: apmoketi.php?amount=' . urlencode($amount));
    

答案 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>