1

Тема: Валідація форми

Я вже не знаю що й робити уже сижу 2 дня я начинаючий програміст і як завжди виникають нові негаразди валідація форми у мене виникла проблема з якою я не можу справитись

Так є форма з 3(трьома) <input /> користувач наприклад не ввів в який з <input /> потрібно вивести помилку перші дії які я зробив це:
1) З допомогою операторів if(empty($name)){ echo "Ви не ввели імя";}
2) Також пробував через руфвук('Location:/error.php') тоїсть зробив переадрисацію
І так були заповнені пусті <input /> і занесені в базу даних як забрати ці помилки допоможіть будь ласка можна це зробити з допомогою php чи тут потрібно і знання javascript

2

Re: Валідація форми

if(empty($name)){ echo "Ви не ввели імя";}

Це вираз.

Перепішть те що ви написали так щоб воно стало зрозумілішим. Покжіть код.

Подякували: koala1

3

Re: Валідація форми

Скиньте код - допоможемо ;)

4 Востаннє редагувалося Serhiy_Les (08.08.2014 16:03:56)

Re: Валідація форми

<?php
if(isset($_POST['submit'])){
require_once('bd.php');
//-----------------------------------

                    // Провірка на пробели і на коди----------------
                    $name = mysqli_real_escape_string($db,trim($_POST['name']));
                    $email = mysqli_real_escape_string($db,trim($_POST['email']));
                    $text = mysqli_real_escape_string($db,trim($_POST['text']));
                    $output_form = 'no';

//----------------------------------------
                    

                        //перевірка email користувача-----------------------------
                        if(!preg_match('/^[^@]+@[^@]+\.[^@]+$/',$email)){
                        ?>
                        <h3 class = "error">Ви вели неправильний email</h3>
                        <?php
                        }
                        //------------------------------------------------------------

                                                //-------Провірка якщо користувач не заповнив форму------------    
                                                if(empty($name) && empty($email) && empty($text)){
                                                $output_form = 'yes';
                                                echo "Заповніть будь-ласка всі поля";
                                                }
                                                //---------------------------------------------------------------                                        
?>
<?php
require_once('bd.php');
if($output_form = 'no'){
$query = "INSERT INTO email(name, email, text, data) VALUES('$name', '$email', '$text', NOW())";
$result = mysqli_query($db,$query) or die('<h3 class = "error">Операція не пройшла успішно зверніться будь-ласка до адміністратора</h3>');
}
}     
?>
<html>
 <head>
 <title></title>
 <link href="style.css" type="text/css" rel="stylesheet" />
 <head>
 <body>
<h1>Заповніть будь-ласка форму</h1>
<form method = "POST" action = "email.php" >
<label>Імя</label>
<input type = "text" name = "name"  />
<label>Email</label>
<input type = "text" name = "email" />
<label>Текст</label>
<textarea type = "text" name = "text" ></textarea>
<input type = "submit" name = "submit" value = "Отправить"/>
</form>
</body>
</html> 

5 Востаннє редагувалося vitrolov (10.08.2014 08:08:09)

Re: Валідація форми

Якщо швидко, бо мало часу. Можна так, це знайшов в книзі Adrian W. West - Practical PHP and MySQL Website Databases

if ($_POST['submit'])
{
   $errors = array(); // З виявленних помилок складатимо масив
    
    if (empty($_POST['name']))
    {
      $errors[] = 'Ви забули увести імя';
    }
    else
    {
        $name = mysqli_real_escape_string($db,trim($_POST['name']));
    }

    if (empty($_POST['email']))
    {
      $errors[] = 'Ви забули увести емайл';
    }
    else
    {
        $email = mysqli_real_escape_string($db,trim($_POST['email']));
    }
   
    if(empty($errors))
    {
       // Помилок немає робимо наступне
    }
    else
    {
      // Показуємо помилки
      foreach($errors as $messages)
    {
       echo "Виявленні помилки - $messages <br />\n";
    }
}

Також можеш вмкористати PHP функцію, або в усякому випадку потестуй її на локалці.

filter_var($email, FILTER_VALIDATE_EMAIL)

Як початківцю,  корисним буде дізнатись про те, що HTML 5 сам може перевіряти дійсність веденних даних. Звичайно, на це не можна покладатись на 100% ,але роби спочатку перевірку засобами HTML 5 а вже тоді зі сторони PHP. Переглянь будь-який підручник на тему нововедень HTML 5

6 Востаннє редагувалося Blast (10.08.2014 09:07:18)

Re: Валідація форми

Все просто в тезі інпут в HTML коді просто вставле required

<input name="user" required placeholder="Ім’я">

Можеш і сам почитати