За последние 24 часа нас посетили 20570 программистов и 1124 робота. Сейчас ищут 753 программиста ...

Не работает валидация формы

Тема в разделе "PHP для новичков", создана пользователем Linne, 21 янв 2018.

  1. Linne

    Linne Активный пользователь

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Здравствуйте, товарищи! :)

    Есть такой код для обновления пароля:

    PHP:
    1. if(isset($_POST['submit'])){
    2.  
    3.     if(empty($_POST['password'])){
    4.         header('Refresh: 3; URL = /admin/newpass');
    5.         echo '<p class="error">Введите новый пароль!</p>';
    6.     }
    7.     /* elseif (!preg_match('/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$/u', $password)) {
    8.         header('Refresh: 3; URL = /admin/newpass');
    9.         echo '<p class="error">Пароль может состоять только из цифр и букв латинского алфавита!</p>';
    10.     } */
    11.  
    12.     else{
    13.  
    14.         $doc =newDOMDocument('1.0','UTF-8');
    15.         $doc->formatOutput =true;
    16.         $doc->load('xml/admin.xml');
    17.         $root = $doc->documentElement;
    18.  
    19.         if(isset($_POST['password'])){
    20.             $password = $_POST['password'];
    21.  
    22.             $pass = $root->getElementsByTagName('password');
    23.  
    24.             if(isset($password['password'])and trim($password['password'])!=''){
    25.  
    26.                 $pass = $pass->item(0);
    27.                 $pass->nodeValue = crypt($password['password']);
    28.             }
    29.  
    30.         }
    31.  
    32.         $doc->save('xml/admin.xml');
    33.  
    34.         header('Refresh: 3; URL = /admin');
    35.         echo '<p class="valid">Пароль обновлён</p>';
    36.  
    37.         }
    38.  
    39. }
    Этот код работает отлично, но, пропускает пустое поле. Т. е., если ничего не ввести и отправить на сервер, то всё равно выводится «Пароль обновлён», при этом, конечно, записи в файл не происходит.

    Вроде бы всё логично: есть условие, что поле должно быть заполнено и если всё ОК, то пропускаем на перезапись в файл. Вообще не могу понять в чём может быть проблема.
     
  2. Linne

    Linne Активный пользователь

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Вопрос решён. Тему можно закрыть.