Curiosity 0 Опубликовано 17 июля, 2016 Здравствуйте, после того как прошёл видеокурс по пхп, решил написать скрипт или модуль(не знаю как правильно это назвать) регистрации, а потом и авторизации, т.к. нужна практика Это первая страница, create_acc.php <!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>reg</title> </head> <body> <form action="save_user.php" method="post"> <input type="text" name="login" minlength="4"> <input type="password" name="password" minlength="6"> <input type="submit" value="Register"> </form> </body> </html> Это вторая, save_user.php <?php include 'db.php'; if (isset($_POST['login'])) { $login = $_POST['login']; } if (isset($_POST['password'])) { $password = $_POST['password']; } if (empty($password) || empty($login)) { exit("Type log or pass pls"); } $md5_password = md5($_POST['password']); $request = "INSERT INTO accounts VALUES ('$login', '$md5_password');"; $save_acc = mysqli_query($db, $request); if($save_acc == 'true') { echo 'REGISTERED'; } else { echo 'Something went wrong'; } ?> Регистрация происходит нормально, в базу приходят данные. Собственно, вопрос в том, как сделать проверку на существование логина? т.е зарегаться под одинаковым логином нельзя. Выгружать все логины из базы будет некорректно , да и если база будет большая, будет занимать большое кол-во времени. Тогда нужно сделать проверку прямо в базе, можно ли так сделать? и каким способом? Подскажите плз, заранее спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
gawric 49 Опубликовано 17 июля, 2016 (изменено) да сделать поиск в базе возможен. Все есть в гугле "простые запросы sql" запрос вернет 0 или 1. Делаешь проверку в php Изменено 17 июля, 2016 пользователем gawric Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Curiosity 0 Опубликовано 17 июля, 2016 $query= "SELECT login FROM accounts"; $result = mysqli_query($db, $query); if ($_POST['login'] == $result) { echo 'Your login is entered'; } else { $request = "INSERT INTO accounts VALUES ('$login', '$md5_password');"; $save_acc = mysqli_query($db, $request); } сделал так, но всё равно регистрирует с однаковым логином Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
gawric 49 Опубликовано 17 июля, 2016 (изменено) $query= "SELECT login FROM accounts"; $result = mysqli_query($db, $query); if ($_POST['login'] == $result) { echo 'Your login is entered'; } else { $request = "INSERT INTO accounts VALUES ('$login', '$md5_password');"; $save_acc = mysqli_query($db, $request); } сделал так, но всё равно регистрирует с однаковым логином здесь нету поиска в sql базе логина. Должно быть что-то "SELECT login FROM accounts WHERE login = $login" Выбирает все записи из таблицы users, где поле fname соответствует значению Gena. SELECT * FROM users WHERE fname='Gena'; http://tradebenefit.ru/art?id=47 и должна быть проверка возвращаемого результат в php не помню как но примерно Результат поиска будет 1 или 0 т.е 1 такой абонент был найден в базе 0 - совпадений не найдено if(result ==1){ echo "Данный логин существует" }else{ echo "Новый логин" } Изменено 17 июля, 2016 пользователем gawric Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты