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

空の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

以下のコードは、ページが 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

さて、それを行う方法を示す良い例を見つけました http://yensdesign.com/2009/01/how-validate-forms-both-sides-using-php-jquery/

于 2013-02-20T13:44:48.677 に答える