За последние 24 часа нас посетил 21701 программист и 1023 робота. Сейчас ищут 698 программистов ...

Регистрация

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

  1. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    Добрый вечер, помогите решить проблему, когда перехожу на страницу регистрации сразу же весит ошибка, о том, что "
    Вы ввели не всю информацию, вернитесь назад и заполните все
    поля!", как сделать, чтобы ошибка появлялась после отправки формы? Снимок экрана 2018-05-15 в 1.19.52.png Снимок экрана 2018-05-15 в 1.19.52.png Снимок экрана 2018-05-15 в 1.19.52.png Снимок экрана 2018-05-15 в 1.20.11.png
    з.ы заранее спасибо!
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    if (!empty ($submit)), где $submit = $_POST["submit"]'
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @Yuriy124, иначе говоря, сначала надо определиться, в какой момент показывается форма... либо "первый раз", либо после её заполнения пользователем.
    Во втором варианте можно проверить параметры, приведённые в сообщениях 2 и 3.
    --- Добавлено ---
    И в дополнение к тому, что написано в сообщении 2 - также надо каким-либо способом проверить наличие данных в массиве $_POST по индексу 'submit' (предполагается, что кнопка с type='submit' имеет атрибут name='submit')
     
  5. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    Sali, я не понимаю как это осуществить
    <?php
    if (isset($_POST['login']))
    {
    $login = $_POST['login']; if ($login == ''){ unset($login);}
    }

    if (isset($_POST['email']))
    {
    $email = $_POST['email']; if ($email == ''){ unset($email);}
    }

    if (isset($_POST['password']))
    {
    $password = $_POST['password']; if ($password == '') { unset($password);}
    }

    if (isset($_POST['password2']))
    {
    $password2 = $_POST['password2']; if ($password2 == '') { unset($password2);}

    if ($password==$password2) {
    $password=md5($password);
    }
    else {
    die('Пароль не совпадает');
    }
    }


    if (empty($login) or empty($email) or empty($password) or empty($password2))
    {
    exit("<div class=\"sts4\">Вы ввели не всю информацию, вернитесь назад и заполните все
    поля!</div>");
    }
    //если логин и пароль введены, то обрабатываем их, чтобы теги и скриптыне работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $email = stripslashes($email);
    $email = htmlspecialchars($email);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
    $password2 = stripslashes($password2);
    $password2 = htmlspecialchars($password2);
    //удаляем лишние пробелы
    $login = trim($login);
    $email = trim($email);
    $password = trim($password);
    $password2 = trim($password2);
    // подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и всеостальные, если это не так, то просто измените путь
    // проверка на существование пользователя с таким же логином
    $result = mysqli_query($db, "SELECT id FROM `users` WHERE login='$login'");
    $myrow = mysqli_fetch_array($result);
    if (!empty($myrow['id'])) {
    exit ("<div class=\"sts3\">Извините, введённый вами логин уже зарегистрирован. Введите другой
    логин.</div>");
    }
    // если такого нет, то сохраняем данные
    $result2 = mysqli_query ($db, "INSERT INTO users (login,email,password) VALUES('$login','$email','$password')");
    // Проверяем, есть ли ошибки
    if ($result2=='TRUE')
    {
    echo "<div class=\"sts2\">Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a
    href='index.php'>Главная страница</a></div>";
    header('Refresh: 5; URL=index.php');
    exit ("<div class=\"sts5\">Через 5 сек. вы будете перенаправлены на новую страницу.</div>");

    }
    else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Сначала надо проверить, что форма отправлена, только потом проверять её поля
     
  7. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    не получатся
     
  8. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    А как проверить, что форма отправлена и и проверить ее поля?
     
  9. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @Yuriy124 Мышка подсказала
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
  11. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    if (isset($_POST['sumbit']){

    if (empty($login) or empty($email) or empty($password) or empty($password2))
    {
    exit("<div class=\"sts4\">Вы ввели не всю информацию, вернитесь назад и заполните все
    поля!</div>");
    все равно не получается
     
  12. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
  13. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    <form action="" method="post">
    <div class="firstname">
    <label for="firstname">Логин:</label>
    <input type="text" name="login" value>
    </div>

    <div class="email">
    <label for="email">E-Mail:</label>
    <input type="email" name="email" value>
    </div>

    <div class="password">
    <label for="password">Пароль:</label>
    <input type="password" name="password" value>
    </div>

    <div class="password2">
    <label for="password2">Подтверждение пароля:</label>
    <input type="password" name="password2" value>
    </div>

    <hr align="left" width="498" size="2" color="f2f2f2" />
    <div class="prodol">
    <input type="submit" value="Зарегистироваться" class="btn-orange">
    </div>
    </form>
    </div>

    <?php
    if (isset($_POST['login']))
    {
    $login = $_POST['login']; if ($login == ''){ unset($login);}
    }

    if (isset($_POST['email']))
    {
    $email = $_POST['email']; if ($email == ''){ unset($email);}
    }

    if (isset($_POST['password']))
    {
    $password = $_POST['password']; if ($password == '') { unset($password);}
    }

    if (isset($_POST['password2']))
    {
    $password2 = $_POST['password2']; if ($password2 == '') { unset($password2);}

    if ($_POST['password']==$_POST['password2']) {
    $_POST['password']=md5($_POST['password']);
    }
    else {
    die('Пароль не совпадает');
    }
    }
    if (isset($_POST['sumbit']) {

    if (empty($login) or empty($email) or empty($password) or empty($password2))
    {
    exit("<div class=\"sts4\">Вы ввели не всю информацию, вернитесь назад и заполните все
    поля!</div>");
    }
    //если логин и пароль введены, то обрабатываем их, чтобы теги и скриптыне работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $email = stripslashes($email);
    $email = htmlspecialchars($email);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
    $password2 = stripslashes($password2);
    $password2 = htmlspecialchars($password2);
    //удаляем лишние пробелы
    $login = trim($login);
    $email = trim($email);
    $password = trim($password);
    $password2 = trim($password2);
    // подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и всеостальные, если это не так, то просто измените путь
    // проверка на существование пользователя с таким же логином
    $result = mysqli_query($db, "SELECT id FROM `users` WHERE login='$login'");
    $myrow = mysqli_fetch_array($result);
    if (!empty($myrow['id'])) {
    exit ("<div class=\"sts3\">Извините, введённый вами логин уже зарегистрирован. Введите другой
    логин.</div>");
    }
    // если такого нет, то сохраняем данные
    $result2 = mysqli_query ($db, "INSERT INTO users (login,email,password) VALUES('$login','$email','$password')");
    // Проверяем, есть ли ошибки
    if ($result2=='TRUE')
    {
    echo "<div class=\"sts2\">Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a
    href='index.php'>Главная страница</a></div>";
    header('Refresh: 5; URL=index.php');
    exit ("<div class=\"sts5\">Через 5 сек. вы будете перенаправлены на новую страницу.</div>");

    }
    else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    сегодня на работе открыл твои исходники, db.php не было.
    Весь код нужно переписывать с нуля для единой точки, на php7
    --- Добавлено ---
    Это просто пи3да... просто xуй в трубочку приятного аппетита.
    --- Добавлено ---
    ****
    https://php.ru/forum/threads/registracija.70728/#post-569832
     
  15. Yuriy124

    Yuriy124 Новичок

    С нами с:
    15 май 2018
    Сообщения:
    10
    Симпатии:
    0
    Да, все так плохо?
    --- Добавлено ---
    код же работает, в бд все отправляет
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    Да. Сравнимо с "Жена тебе изменила в твое же день рождения"
    --- Добавлено ---
    ну и пофуй, пиво будем пить ? ведь же работает ну и куй с ним ;)