0

ユーザーが郵便番号を入力しないと、同じページでエラーが発生する単純なフォームを作成しようとしています。彼らが郵便番号を入力した場合、フォームを別のページに移動させたい. 誰かが私が間違っていることを教えてもらえますか?

<?php 

$errors = "";

if(isset($_GET['submit'])){

if(0 === preg_match("/\S+/", $_GET['zip']))   
   $errors['zip'] = '<li type="square" >To proceed please enter a valid ZIP Code.</li>'; 
} else {
    die(header("Location: success.php"));
}   

?>

<?php

if ($errors != "") {   
    echo $errors['zip']; 
} 

?>    




<form name="zipcodeform" id="zipcodeform" action="" method="GET">
    <br />
    <h3>Try your self :</h3><br />

    <table border="0" cellpadding="2" cellspacing="2">
        <tr>
            <td align="left" valign="top">Zip Code : </td>
            <td align="left" valign="top"><input type="text" name="zip" id="zip" value="<?php echo $_GET['zip']; ?>"  /></td>
        </tr>

        <tr>
            <td>&nbsp;</td>
            <td align="left" valign="top"><input type="submit" name="submit"   id="submit"      value="Get Quotes >> " /></td>
        </tr>


</form>
4

3 に答える 3

0

スクリプトに複数のエラーがあります。試す

<?php 

$errors = array();

if(isset($_GET['submit'])){
  if( !preg_match("/\S+/", $_GET['zip']) ){
        $errors['zip'] = '<li type="square" >To proceed please enter a valid ZIP Code.</li>';
  } 

  if( !empty($errors) ){
      echo $errors['zip'];
  } else {
      header("Location: success.php");
      exit();
  }

} 

?>

<form name="zipcodeform" id="zipcodeform" action="" method="GET">
<br />
<h3>Try your self :</h3><br />

<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td align="left" valign="top">Zip Code : </td>
<td align="left" valign="top"><input type="text" name="zip" id="zip" value="<?php if(isset($_GET['zip'])) echo $_GET['zip']; ?>"  /></td>
</tr>

<tr>
<td>&nbsp;</td>
<td align="left" valign="top"><input type="submit" name="submit"  id="submit"   value="Get Quotes &gt;&gt;" /></td>
</tr>
</table>

</form>
于 2013-08-11T01:44:36.373 に答える