Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка на существование логина

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nicky
Отправлено: 17 Июля, 2016 - 00:18:37
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Здравствуйте. Я новичёк. После просмотра несколько часов видеокурса по PHP решил заняться практикой. Решил создать скрипт логина и авторизации.
Файл create_acc.php(начальная страница)
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4.     <head>
  5.         <meta charset="utf8">
  6.         <title>reg</title>
  7.     </head>
  8.     <body>
  9. <form action="save_user.php" method="post">
  10.     <input type="text" name="login" minlength="4">
  11.     <input type="password" name="password" minlength="6">
  12.     <input type="submit" value="Register">
  13. </form>
  14.     </body>
  15. </html>
  16.  

Файл save_user.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.    include 'db.php';
  4.    
  5.    if (isset($_POST['login'])) {
  6.        $login = $_POST['login'];
  7.    }
  8.    
  9.    if (isset($_POST['password'])) {
  10.        $password = $_POST['password'];
  11.    }
  12.    
  13.    if (empty($password) || empty($login)) {
  14.        exit("Type log or pass pls");
  15.    }
  16.    
  17.    $request = "INSERT INTO accounts VALUES ('$login', '$password');";
  18.    $save_acc = mysqli_query($db, $request);
  19.        
  20.    if($save_acc == 'true') {
  21.        echo 'REGISTERED';
  22.    } else {
  23.        echo 'Something went wrong';
  24.    }
  25. ?>
  26.  

Я хочу сделать проверку на существование логина, т.е если я создал аккаунт login, и если еще раз создать аккаунт с логином login, то вывести ошибку.
Как я думаю, то сначала нужно с базы данных нужно сделать запрос SELECT login FROM accounts , и по идее записать это в массив , и дальше введенный логин просто чекать есть ли такой в массиве. Верно ли я думаю? и как это правильно реализовать? Заранее спасибо.
 
 Top
caballero
Отправлено: 17 Июля, 2016 - 01:04:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в условии запроса select и проверять а не грузить тысячи логинов в массив


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
nicky
Отправлено: 17 Июля, 2016 - 15:54:10
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




caballero пишет:
в условии запроса select и проверять а не грузить тысячи логинов в массив

немножко не понимаю как именно проверять?
 
 Top
caballero
Отправлено: 17 Июля, 2016 - 18:43:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




SELECT .... FROM ... WHERE

никто не начинает програмировать после несколькорих часов видео.
берите нормальные учебники по PHP,HTML,Mysql


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
nicky
Отправлено: 17 Июля, 2016 - 18:53:24
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




caballero пишет:
SELECT .... FROM ... WHERE

никто не начинает програмировать после несколькорих часов видео.
берите нормальные учебники по PHP,HTML,Mysql

я просто вас неправильно понял Улыбка
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     include 'db.php';
  4.    
  5.     if (isset($_POST['login'])) {
  6.         $login = $_POST['login'];
  7.     }
  8.    
  9.     if (isset($_POST['password'])) {
  10.         $password = $_POST['password'];
  11.     }
  12.    
  13.     if (empty($password) || empty($login)) {
  14.         exit("Type log or pass pls");
  15.     }
  16.    
  17.     $md5_password = md5($_POST['password']);
  18.    
  19.     $query= "SELECT login FROM accounts;";
  20.     $result = mysqli_query($db, $query);
  21.    
  22.     if ($_POST['login'] == $result) {
  23.         echo 'Your login is entered';
  24.     } else {
  25.         $request = "INSERT INTO accounts VALUES ('$login', '$md5_password');";
  26.         $save_acc = mysqli_query($db, $request);
  27.     }
  28.     if($save_acc == 'true') {
  29.         echo 'REGISTERED';
  30.     } else {
  31.         echo 'Something went wrong';
  32.     }
  33.  ?>
  34.  

сделал так, но регистрирует все равно

(Отредактировано автором: 17 Июля, 2016 - 18:55:09)

 
 Top
Viper
Отправлено: 17 Июля, 2016 - 19:38:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




nicky пишет:
сделал так, но регистрирует все равно
бросайте смотреть говновидео. Читайте книги!

PHP:
скопировать код в буфер обмена
  1. $query= "SELECT login FROM accounts WHERE login = '" . $_POST['login'] . "'";
это вам пример. Вставлять переменные из $_POST/$_GET/etc напрямую в запрос, без фильтрации и экранирования, категорически не рекомендую, ибо дыра в безопасности.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
nicky
Отправлено: 17 Июля, 2016 - 19:46:17
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Viper пишет:
nicky пишет:
сделал так, но регистрирует все равно
бросайте смотреть говновидео. Читайте книги!

PHP:
скопировать код в буфер обмена
  1. $query= "SELECT login FROM accounts WHERE login = '" . $_POST['login'] . "'";
это вам пример. Вставлять переменные из $_POST/$_GET/etc напрямую в запрос, без фильтрации и экранирования, категорически не рекомендую, ибо дыра в безопасности.

Какую посоветуете книгу?)
 
 Top
Viper
Отправлено: 17 Июля, 2016 - 20:46:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




nicky пишет:
Какую посоветуете книгу?)
честно не в курсе модных нынче книг по php Улыбка У меня книга одна google ^)


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB