Учебники

PHP — Пример валидации

Обязательное поле проверит, заполнено ли поле надлежащим образом. В большинстве случаев мы будем использовать символ * для обязательного поля.

Что такое валидация?

Валидация означает проверку введенных пользователем данных. В PHP доступно два типа проверки. Они заключаются в следующем —

  • Проверка на стороне клиента — проверка выполняется в веб-браузерах клиентского компьютера.

  • Проверка на стороне сервера — после отправки данных данные отправляются на сервер и выполняют проверки на сервере.

Проверка на стороне клиента — проверка выполняется в веб-браузерах клиентского компьютера.

Проверка на стороне сервера — после отправки данных данные отправляются на сервер и выполняют проверки на сервере.

Некоторые из правил валидации для поля

поле Правила валидации
название Если требуются буквы и пробелы
Эл. адрес Если требуется @ и .
Веб-сайт Если требуется действительный URL
Радио Должен быть выбран по крайней мере один раз
Флажок Должен быть проверен по крайней мере один раз
Выпадающее меню Должен быть выбран по крайней мере один раз

Действительный URL

Ниже код показывает проверку URL

$website = input($_POST["site"]);

if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
   $websiteErr = "Invalid URL"; 
}

Выше синтаксис будет проверять, является ли данный URL действительным или нет. Это должно позволить некоторые ключевые слова как https, ftp, www, az, 0-9, .. и т. Д.

Правильный электронный адрес

Ниже код показывает подтверждение адреса электронной почты

$email = input($_POST["email"]);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $emailErr = "Invalid format and please re-enter valid email"; 
}

Выше синтаксиса будет проверять, правильно ли задан адрес электронной почты или нет. Если это не так, он покажет сообщение об ошибке.

пример

Пример ниже показывает форму с обязательным полем проверки

<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 {
               $name = test_input($_POST["name"]);
            }
            
            if (empty($_POST["email"])) {
               $emailErr = "Email is required";
            }else {
               $email = test_input($_POST["email"]);
               
               // check if e-mail address is well-formed
               if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                  $emailErr = "Invalid email format"; 
               }
            }
            
            if (empty($_POST["website"])) {
               $website = "";
            }else {
               $website = test_input($_POST["website"]);
            }
            
            if (empty($_POST["comment"])) {
               $comment = "";
            }else {
               $comment = test_input($_POST["comment"]);
            }
            
            if (empty($_POST["gender"])) {
               $genderErr = "Gender is required";
            }else {
               $gender = test_input($_POST["gender"]);
            }
         }
         
         function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
         }
      ?>
     
      <h2>Absolute classes registration</h2>
     
      <p><span class = "error">* required field.</span></p>
     
      <form method = "post" action = "<?php 
         echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
         <table>
            <tr>
               <td>Name:</td>
               <td><input type = "text" name = "name">
                  <span class = "error">* <?php echo $nameErr;?></span>
               </td>
            </tr>
           
            <tr>
               <td>E-mail: </td>
               <td><input type = "text" name = "email">
                  <span class = "error">* <?php echo $emailErr;?></span>
               </td>
            </tr>
           
            <tr>
               <td>Time:</td>
               <td> <input type = "text" name = "website">
                  <span class = "error"><?php echo $websiteErr;?></span>
               </td>
            </tr>
            
            <tr>
               <td>Classes:</td>
               <td> <textarea name = "comment" rows = "5" cols = "40"></textarea></td>
            </tr>
            
            <tr>
               <td>Gender:</td>
               <td>
                  <input type = "radio" name = "gender" value = "female">Female
                  <input type = "radio" name = "gender" value = "male">Male
                  <span class = "error">* <?php echo $genderErr;?></span>
               </td>
            </tr>
				
            <td>
               <input type = "submit" name = "submit" value = "Submit"> 
            </td>
				
         </table>
			
      </form>
      
      <?php
         echo "<h2>Your given values are as:</h2>";
         echo $name;
         echo "<br>";
         
         echo $email;
         echo "<br>";
         
         echo $website;
         echo "<br>";
         
         echo $comment;
         echo "<br>";
         
         echo $gender;
      ?>
   
   </body>
</html>

Это даст следующий результат —