За последние 24 часа нас посетили 17846 программистов и 1612 роботов. Сейчас ищут 1362 программиста ...

Проверка данных

Тема в разделе "PHP для новичков", создана пользователем Favorskij, 20 фев 2014.

  1. Favorskij

    Favorskij Новичок

    С нами с:
    15 дек 2013
    Сообщения:
    16
    Симпатии:
    0
    Здравствуйте.

    Уже неделю бьюсь и не могу сделать. Искал в Интернете и не нашел подходящего результата, вечно ошибка какая нибудь, на подобие "устаревшая функция" или еще что.
    Думаю может все же тут помогут профессионалы.


    Есть два файла Index.php и config.php

    Index.php
    Код (Text):
    1.  
    2.  
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    4. <html xmlns="http://www.w3.org/1999/xhtml">
    5. <head>
    6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    7. <title>Регистрация</title>
    8. <link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
    9. <link rel="shortcut icon" href="/favicon.ico" />
    10. </head>
    11. <body>
    12. <?php
    13. include('config/config.php');
    14. ?>
    15.  
    16. <div id="container">
    17. <form action="thanks.php" method="post">
    18.   <h1><span>Регистрация</span></h1>
    19.   <div class="form">
    20.     <input type="text" placeholder="Придумайте логин" name="username" required />
    21.     <label for="username">Не менее 4 символа</label>
    22.     <input type="password" placeholder="Придумайте пароль" name="password"  required />
    23.     <label for="password">Не менее 4 символа</label>
    24.     <input type="password" placeholder="Повторите пароль ещё раз" name="r_password"  required />
    25.   </div>
    26.   <div class="clear"></div>
    27.   <input class="submit" type="submit" name="submit" id="submit" value="" />
    28.   </div>
    29. </form>
    30. </div>
    31. </body>
    32. </html>
    и config.php

    Код (Text):
    1.  
    2.  
    3. <?php
    4.  
    5.     $host = "127.0.0.1";
    6.     $db_name = "123";
    7.     $login = "root";
    8.     $password = "**********";
    9.      
    10.     $connection = mysqli_connect( $host, $login, $password, $db_name );
    11.    
    12.     mysqli_query($connection, "SET NAMES 'utf-8'");
    13.  
    14. ?>
    Напишите пожалуйста код, как сделать что бы была проверка веденных данных - пароль не менее 4 символа и email корректно вводили.

    И если можно, по возможности, и как это записать в БД. (БД уже готова. Таблица под название "users" с полями "username" "password" и "email"

    Буду очень благодарен если подскажите.
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Для вас важен сам принцип или сделать за вас?)))

    Добавлено спустя 16 минут 56 секунд:
    и так:
    Код (Text):
    1.  
    2. if ("проверка отправки формы") {
    3.     //Если форма отправлена выполняем действия по проверке длины или на наличие запрешенных символов в пароле
    4.     if ("наш пароль" >= 4 & "наш пароль" <= 15) {
    5.         //на наличие запрешенных символов в пароле
    6.         //для этого пользуйтесь регуляркой
    7.         if (preg_match('#[A-Z]#', $pass) and preg_match('#[a-z]#', "наш пароль") and preg_match('#\d#', "наш пароль")) {
    8.             echo 'пароль верен';
    9.             //Вот тут уже заносим пароль в БД
    10.         } else {
    11.             echo 'пароль должен содержать хотя бы: один заглавный символ, строчный символ, цифру.';
    12.         }
    13.     }
    14. }
    наподобие делается и проверка введенного e-mail. Только найдите регулярное выражение для него и все дела)
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    if (sizeof($pass)<4){echo 'Пароль должен быть длиннее 3 символов'; };
    Если, конечно, пароль не в UTF-8 кириллице. Тогда надо другую функцию юзать, mb_strlen .
    А на эту тему есть разные варианты. От мудреных регекспов до банальной надписи "email будет использоваться для восстановления пароля". Вариант с надписью, кстати, самый экономичный и весьма эффективный.

    Философия проста - если пользователь не хочет писать корректный мейл, он и так его не напишет. Напишет что-то, что для регекспы будет выглядеть как мыло - fake@fake.com. Вот и все. Если же пользователь заинтересован в сайте и в том, чтобы, в случае чего, он мог восстановить парольку, он непременно напишет 100% настоящий адрес.

    Итого: первые все равно не нужны, ну и нафиг их, с их мусорными мылами. Семи себе буратины. Вторые нужны, и они сами заинтересованы в корректно указанном адресе.
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Каким учебным материалом пользуетесь?
     
  5. Favorskij

    Favorskij Новичок

    С нами с:
    15 дек 2013
    Сообщения:
    16
    Симпатии:
    0
    Интернетовским

    Добавлено спустя 9 минут 12 секунд:
    Интернетовским
    Сейчас мне немного удалось подправить код. Меня интересует что бы пароль и логин был не менее 4 символа. И что бы в них нельзя было указывать запрещенные символы. Вот вы показали пример, но что то не получается. Покажите поточнее пожалуйста.

    Вот мой код
    Код (Text):
    1.   <?php
    2.   if(!empty($_POST['username'])) //проверяем не отправили -ли пустое поле
    3.   {
    4.     $username = $_POST['username'];
    5.   }
    6.     else
    7.     {
    8.       echo '<h14><span>Поле "Логин" должн быть не менее 4 символа. Пожалуйста, вернитесь назад...</span></h4>'; //если поле окажется пустым , то выводим сообщение об ошибке
    9.       exit(); //останавливаем скрипт
    10.     }
    11.   if(!empty($_POST['password'])) //проверяем не отправили -ли пустое поле
    12.   {
    13.     $password = $_POST['password'];
    14.   }
    15.     else
    16.     {
    17.       echo '<h4><span>ППоле "Пароль" должн быть не менее 4 символа. Пожалуйста, вернитесь назад...</span></h4>'; //если поле окажется пустым , то выводим сообщение об ошибке
    18.       exit(); //останавливаем скрипт
    19.     }
    20.   if($_POST['r_password'] == $_POST['password']) //проверяем соответствует ли пароль и повторный его ввод
    21.   {
    22.     $r_password = $_POST['r_password'];
    23.   }
    24.     else
    25.     {
    26.       echo "<h4><span>Пароль не совпадает. Пожалуйста, вернитесь назад и исправте...</span></h4>"; // если введены разные пароли выводим ошибку
    27.       exit(); //останавливаем скрипт
    28.     }
    29.  
    30.   echo $username.'<br>';
    31.   echo $password.'<br>';
    32.   echo $r_password.'<br>';
    33. ?>
    Благодарю вас за ответ. Спасибо.
     
  6. imoisey

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

    С нами с:
    27 янв 2014
    Сообщения:
    113
    Симпатии:
    0
    Что для вас запрещенные символы?
     
  7. Favorskij

    Favorskij Новичок

    С нами с:
    15 дек 2013
    Сообщения:
    16
    Симпатии:
    0
    /|?;^:*%$#@><'
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Почему именно они?
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Интернетовским трудновато будет, купите одну книжку, для начала)