小编典典

PHP header()使用POST变量重定向

html

我正在使用PHP,并且正在制作一个表单要发布到的操作页面。该页面检查错误,然后,如果一切正常,则将其重定向到已发布数据的页面。如果没有,我需要将它们重定向到错误和POST变量所在的页面。这是其工作原理的要点。

HTML看起来像这样…

<form name="example" action="action.php" method="POST">
  <input type="text" name="one">
  <input type="text" name="two">
  <input type="text" name="three">
  <input type="submit" value="Submit!">
</form>

action.php看起来像这样…

if(error_check($_POST['one']) == true){
    header('Location: form.php');
    // Here is where I need the data to POST back to the form page.
} else {
    // function to insert data into database
    header('Location: posted.php');
}

如果发生错误,我需要将其重新发布回第一页。我不能使用GET,因为输入太大。如果可能,我不想使用SESSION。这可能吗?


阅读 573

收藏
2020-05-10

共1个答案

小编典典

如果您不想使用会话,则唯一可以做的就是将POST张贴到同一页面。无论哪种IMO是最好的解决方案。

// form.php

<?php

    if (!empty($_POST['submit'])) {
        // validate

        if ($allGood) {
            // put data into database or whatever needs to be done

            header('Location: nextpage.php');
            exit;
        }
    }

?>

<form action="form.php">
    <input name="foo" value="<?php if (!empty($_POST['foo'])) echo htmlentities($_POST['foo']); ?>">
    ...
</form>

可以使它变得更优雅,但是您会想到的…

2020-05-10