Перейти к содержанию
Авторизация  
Curiosity

Проверка на существование логина

Рекомендуемые сообщения

Здравствуйте, после того как прошёл видеокурс по пхп, решил написать скрипт или модуль(не знаю как правильно это назвать) регистрации, а потом и авторизации, т.к. нужна практика

Это первая страница, 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';
    }
 ?>

Регистрация происходит нормально, в базу приходят данные.

Собственно, вопрос в том, как сделать проверку на существование логина? т.е зарегаться под одинаковым логином нельзя.

Выгружать все логины из базы будет некорректно , да и если база будет большая, будет занимать большое кол-во времени.

Тогда нужно сделать проверку прямо в базе, можно ли так сделать? и каким способом? Подскажите плз, заранее спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да сделать поиск в базе возможен. Все есть в гугле "простые запросы sql" запрос вернет 0 или 1. Делаешь проверку в php 

Изменено пользователем gawric

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
    $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);
    }

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
    $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 "Новый логин"
}
Изменено пользователем gawric

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...