2

I am new to php here's the my code.

when any of the field is empty i want to stop form submission...

<!DOCTYPE HTML> 
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body> 

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{

   if (empty($_POST["name"]))
     {$nameErr = "Name is required";}
   else if (empty($_POST["email"]))
     {$emailErr = "Email is required";}
   else if (empty($_POST["website"]))
     {$website = "";}
   else if (empty($_POST["comment"]))
     {$comment = "";}
   else if (empty($_POST["gender"]))
     {$genderErr = "Gender is required";}

}
?>

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="welcome.php"> 
   <label>Name:</label> <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span>
   <br><br>
   <label>E-mail:</label> <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span>
   <br><br>
   <label>Website:</label> <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span>
   <br><br>
   <label>Comment:</label> <input type="text" name="comment">
   <br><br>
   <label>Gender:</label>
   <input type="radio" name="gender" value="female">Female
   <input type="radio" name="gender" value="male">Male
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>
   <input type="submit" name="submit" value="Submit"> 
</form>
</body>
</html>
4

8 に答える 8

1

Javascriptはクライアント側、PHPはサーバー側であるため、送信ボタンが押されて「データをサーバーに送信」するまで、そこからphpを使用してフォームを検証します..フィールドをチェックして、データベースの挿入、計算などのさまざまな操作を実行します。クライアントに応答を送り返し、このエラーが発生したことを伝えてください。この種のデータを扱うつもりはありません。まあ、ajax を使用して、サーバー側でフォームをライブ検証することができます。最善の方法は、クライアント側を検証することです。次に、クライアントから来るすべてのデータを使用する前に、誰もが嘘をついているために常に嘘をつき、サーバーで別のチェックを行います。ここに例があります。

于 2014-03-28T19:56:38.337 に答える
0

フィールドのいずれかが空の場合、フォームが送信されない必要があります。これを試してみませんか..

<label>Name:</label> <input type="text" name="name" required> <span class="error">* <?php echo $nameErr;?></span>
   <br><br>
    <label>E-mail:</label> <input type="text" name="email" required> <span class="error">* <?php echo $emailErr;?></span>
       <br><br>
       <label>Website:</label> <input type="text" name="website" required> <span class="error"><?php echo $websiteErr;?></span>
       <br><br>
       <label>Comment:</label> <input type="text" name="comment" required>
       <br><br>
       <label>Gender:</label>
       <input type="radio" name="gender" value="female" required>Female
       <input type="radio" name="gender" value="male" required>Male
于 2013-09-24T05:10:19.087 に答える
0

この関数でフォームを停止できます。

$("form").submit(function(a){
    a.preventDefault();
});
于 2021-04-14T13:46:54.277 に答える
0

PHP で検証を行いたいようですが、PHP へのデータの送信はやめてください。それは不可能です。PHP で検証したい場合は、何があってもすべてのデータが送信されます。exit()必要に応じて、PHP の実行を停止するために使用できます。それ以外の場合は、JavaScript を使用してクライアント側でフォームを検証する必要があります (ここまたは Google で多くの情報を見つけることができます)。

于 2013-09-24T05:04:00.430 に答える
0

Errors の配列を作成できます。

$errors = []; // empty array 

if(isset($_POST['username']) && empty($_POST['username'])) {
   $errors['userName'] = "The userName is empty";
}

// then check if no errors , insert it to your DB :
if(count($errors) <= 0) {
 // after filtering the username from XSS , insert it to DB.
}else {
 // If there are ERRORS , even if one error :
 foreach($errors as $error) {
 // you can print all your errors 
}
}

// or use then in onther place like this :
if(isset($errors['username'])) { 
  echo $erros['username'];
}

または、JavaScript xmlHttpRequest を使用して、 preventDefault 関数について読むことができます。

于 2019-08-29T01:25:10.010 に答える