За последние 24 часа нас посетили 17779 программистов и 1656 роботов. Сейчас ищут 1208 программистов ...

Проверка на схожие логины

Тема в разделе "PHP и базы данных", создана пользователем Winner1337, 19 май 2018.

  1. Winner1337

    Winner1337 Новичок

    С нами с:
    19 май 2018
    Сообщения:
    3
    Симпатии:
    0
    PHP:
    1. <?
    2. include_once("connect.php");
    3. if (isset($_POST['submit']))
    4. {
    5. if(empty($_POST['AccountID']))
    6. {
    7. echo 'Вы не ввели логин';
    8. }
    9. elseif(empty($_POST['passwd']))
    10. {
    11. echo 'Вы не ввели пароль';
    12. }
    13. elseif(empty($_POST['passwd2']))
    14. {
    15. echo 'Вы не ввели подтверждение пароля';
    16. }
    17. elseif($_POST['passwd'] != $_POST['passwd2'])
    18. {
    19. echo 'Введенные пароли не совпадают';
    20. }
    21. elseif(empty($_POST['email']))
    22. {
    23. echo 'Вы не ввели E-mail';
    24. }
    25. else
    26. {
    27. $AccountID = $_POST['AccountID'];
    28. $passwd = md5(trim($_POST['passwd']));
    29. $passwd2 = $_POST['passwd2'];
    30. $email = $_POST['email'];
    31.  
    32. $query = "SELECT serial_number
    33. FROM [BillingDB].[dbo].[TBL_Member_Data]
    34. WHERE AccountID='$AccountID' AND passwd='$passwd'";
    35. $sql = sqlsrv_query($conn,$query) or die (print_r(sqlsrv_errors(),true));
    36.  
    37. if (sqlsrv_num_rows($sql) > 0)
    38. {
    39. echo 'Такой логин уже существует';
    40. }
    41.  
    42. else
    43. {
    44. $AccountID=addslashes($AccountID);
    45. $passwd=addslashes($passwd);
    46. $email=addslashes($email);
    47.  
    48. $query = "INSERT INTO [BillingDB].[dbo].[TBL_Member_Data] (AccountID , passwd , email )
    49. VALUES ('$AccountID', '$passwd', '$email')";
    50. $result = sqlsrv_query($conn,$query) or die (print_r(sqlsrv_errors(),true));
    51.  
    52. echo 'Спасибо за регистрацию!';
    53. }
    54. }
    55. }
    56. ?>
    Проблема в вот чем...Такое чувство,что проверка на "логины" просто пропускается и идет регистрация.Как мне кажется это опять php 7.0 и надо заменять функции или добавлять что-то новое
    БД использую mssql
     
  2. Winner1337

    Winner1337 Новичок

    С нами с:
    19 май 2018
    Сообщения:
    3
    Симпатии:
    0
    Что-то даже ответов нет...
     
  3. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ты проверяешь не на логин а на логин + пароль.
    Пароли нужно хешировать а все данные проверять и не просто экранировать
     
  5. Winner1337

    Winner1337 Новичок

    С нами с:
    19 май 2018
    Сообщения:
    3
    Симпатии:
    0
    Уже сам всё сделал
    PHP:
    1. $row_count = sqlsrv_has_rows( $sql );
    2.  
    3.  
    4. if ($row_count > 0)
    Вроде помогло и без ошибок всё
     
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Какая то мистика
     
  7. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Winner1337, процитирую @nospiou:
    Что произойдет, если укажешь уже имеющийся в базе логин и другой пароль?
    Конечно, поле "логин" в базе может быть уникальным, но... :)
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Так это же не вход а регистрация. И не может а должен
     
  9. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    Вот и подскажи ТС'у, что произойдет в описанном случае, исходя из приведенного кода.
    Должен, конечно, но в данном случае этот факт приведёт лишь к очередному notice или warning... В общем, тот, кто пытается зарегистрироваться не увидит сообщения о существовании "такого логина"
     
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @Sail Ему вариант с мистикой больше понравился:)