0

简化以下代码以说明我的问题。这是一个捕获数据的页面,它将发布捕获的信息并传递给另一个 php 页面进行处理。我试图确保输入了必填字段,但无论出现错误,它总是会转到调用页面。任何人都可以帮忙吗?

<?php
  if (empty($_POST) === false) {
    $required_field = array('first_name','last_name');
    foreach ($_POST as $key=>$value) {
    if (empty($value) && in_array($key, $required_field) === true) {
      $errors[] = 'Fields marked with asterisk are required';
      break 1;
      }
    }
  }
?>
<h1>Input Form</h1>

<?php
  if (empty($errors) === false) {
    echo output_errors($errors);
  }
?>

<form method="POST" action="UpdateDB.php" name="UpdateForm">
   <input type=text size="19" maxlength="19" name="firstname">
   <input type=text size="19" maxlength="19" name="lastname">   
   <input type="submit" value="Submit" >
</form>
4

3 回答 3

0

下面的代码将检查页面是否使用 POST 方法调用,如果没有,它将打印输入表单。

php 脚本必须存储在 UpdateDB.php 中,

<?php

    if(!isset($_POST)){

    echo "<h1>Input Form</h1>";
    echo "<form method="POST" action="UpdateDB.php" name="UpdateForm"> <br/>" .
       "<input type=text size="19" maxlength="19" name="firstname"> <br/>" .
       "<input type=text size="19" maxlength="19" name="lastname">   <br/>" .
       "<input type="submit" value="Submit" >" .
    "</form>";
    }

    else{
         /*Form Action code goes here*/
          }
        }
    }


    ?>
于 2013-02-17T10:54:13.100 回答
0

要么通过保留一个空属性将表单提交到当前页面action(并在此处进行处理),要么添加一个带有当前页面 URL 的隐藏字段:

<input type="hidden" name="sourceUrl" value="<?= $_SERVER['REQUEST_URI']; ?>" />

UpdateDB.php如果有错误,然后在您的脚本中重定向回此 URL。就像是:

$url = $_POST['sourceUrl']; // <- sanitize this (make sure it's your site)!

header('Status-Code: 301');
header('Location: http:// ' . $_SERVER["HTTP_HOST"] . $url); 
exit; // important: stop current script
于 2013-02-17T03:33:49.883 回答
0

好的,我找到了一个很好的例子来展示如何做到这一点 http://yensdesign.com/2009/01/how-validate-forms-both-sides-using-php-jquery/

于 2013-02-20T13:44:48.677 回答