За последние 24 часа нас посетил 8401 программист и 479 роботов. Сейчас ищут 275 программистов ...

Показ ошибок при заполнении формы

Тема в разделе "Сделайте за меня", создана пользователем flautr, 29 ноя 2018.

  1. flautr

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

    С нами с:
    4 авг 2015
    Сообщения:
    106
    Симпатии:
    0
    Привет, использую простую регистрацию на сайте.

    index.php
    <form method="post" action="register.php">
    <p><input type="text" name="login"></p>
    <p><input name="password" type="password"></p>
    <p><input name="password2" type="password"></p>
    <p><input type="submit" name="enter"></p>
    </form>

    register.php
    ...
    if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
    {
    $err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
    }
    if(strlen($_POST['password']) != strlen($_POST['password2']))
    {
    $err[] = "Пароли не совпадают";
    }
    # Если нет ошибок, то добавляем в БД нового пользователя
    if(count($err) == 0)
    {

    Как передать в index.php сообщения об ошибках?
     
  2. flautr

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

    С нами с:
    4 авг 2015
    Сообщения:
    106
    Симпатии:
    0
    Может я и сам разберусь мне бы хоть подсказку в нужном направлении))
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.448
    Симпатии:
    478
    register.php
    PHP:
    1. if (!empty($err)) {
    2.     header('Location: /?' . http_build_query(['error' => $err]));
    3.     exit;
    4. }
    index.php
    PHP:
    1. $auth = filter_input_array(INPUT_GET, [
    2.   'error' => [
    3.     'filter' => FILTER_SANITIZE_STRING,
    4.     'flags' => FILTER_FORCE_ARRAY
    5.   ]
    6. ]);
    7.  
    8. if(!empty($auth['error'])) {
    9.     echo implode(PHP_EOL, $auth['error']);
    10. }
     
    flautr нравится это.
  4. flautr

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

    С нами с:
    4 авг 2015
    Сообщения:
    106
    Симпатии:
    0
    @Deonis Спасибо Вам. Я долго ковырялся и сначала не смог подключить почему то, но сейчас разобрался)