0

以下は、正常に動作する PHP コードのデータベース ファイルです。

   if(isset($_POST['submit']))
   {
    $error = array();

 if(empty($_POST["fname"]))
   {
     $error[] = "Please Enter a name";
   }
  else
   {
      $fname = $_POST["fname"];
   }

    if(empty($_POST["lname"]))
     {
  $error[] = "Please Enter last name";
}
   else
     {
  $lname = $_POST["lname"];
}

    if(empty($_POST["email"]))
     {
   $error = "Enter email Id";
 }
  else
     {
   if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-        9\._-]+)+$/", $_POST["email"]))
   {
     $email = $_POST["email"];
   }
  else
   {
     $error = "Enter a vaild Email Id";
   }       
    }

   if(empty($_POST["password"]))
    {
  $error = "Enter a password";
}
   else
    {
  $password = $_POST["password"];
}

    if(!empty($error))
      {
  $sql = "SELECT * FROM form (id, 'FirstName', 'LastName', 'Email', 'Password')  VALUES('', '$fname', '$lname', '$email', '$password')";
   $result = mysql_query($sql);
   echo "Successfully Register";
  }
    else
      {
   foreach($error as $key => $values)
                  {
                    echo ' <li>' . $values . '</li>';
                  }
                echo '</ol>';
    echo "Error";
  }

     }

 ?>

上記のコードはエラーメッセージを表示していません...フォームを送信すると、空白のページのみが表示されます...上記のコードを使用してフォームを検証しますが、これは私が使用した基本的な方法であり、表示しているそれぞれに使用しますエラー...

4

3 に答える 3

1

次のテストは間違っています:

if(!empty($error))

する必要があります:

if(empty($error))

そして、あなたのSQLも間違っています...次のようになるはずです:

$sql = "Insert into form (FirstName, LastName, Email, Password)  VALUES('$fname', '$lname', '$email', '$password')";

あなたの id フィールドが自動インクリメントされていると仮定します

于 2013-04-08T11:47:54.563 に答える
0

エラーを配列にプッシュするのを忘れています。あなたが持っている

$error = "Enter a password"; //$error is no more an array. It is a string

そして、いくつかの場所にある必要があります:

$error[] = "Enter a password";

また、ネストされたifステートメントを使用することをお勧めします。

if (!empty($_POST['submit'])){
  $errors = array() ;
  if (!isset($_POST['email'])
    $errors['email'] = "No email" ;
  //And so on.

  //Then check for errors
  if (!empty($errors)){
    //proceed submission
  }
}
于 2013-04-08T11:47:43.797 に答える