0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 14

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

24.04.2016, 19:23. Показов 1669. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учусь делать сайты, пока на локалхосте. Установлены апач 2.2, пхп 3.5.3 и mysql 5.7. Пытаюсь прикрутить авторизацию через БД по найденному в интернете примеру. Проблема с проверкой логина на занятость – если логин удовлетворяет остальным условиям, то на этом он стопорится всегда, какую бы комбинацию буков я не набрал. Выводит «01*комбинация букв* логин уже занят». ЧЯДНТ?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
 
$link=mysqli_connect("localhost","user", "password", "books");//коннект к базе
echo "0";
 
 
if(isset($_POST['submit']))
{
echo "1";
 
$login=$_POST['login'];
 
 $err=array();
    if(!preg_match("/^[a-zA-Z0-9]+$/",$login)) //проверяем логин
    {$err[]= "Логин должен писаться латиницей";
    echo "2";
    echo"$err[0]";
        }
        
        if(strlen($_POST['login'])<3 or strlen($login)>30){
          $err[]="логин должен быть длиннее 3х и короче 30ти символов";
          echo "3";}
 
    $query=mysqli_query($link, "SELECT COUNT(user_id) FROM users 
        WHERE user_login='".mysqli_real_escape_string($link, $login)."'");
       
       
      echo "$login";
     
 
     if(mysqli_num_rows($query)>0){
       $err[]="логин уже занят";
      echo "$err[0]"; }
           
 
     if(count($err)==0){
      //Если нет ошибок, то добавляем в БД нового пользователя
   
        
     $password=md5(md5(trim($_POST['password'])));//убираем пробелы, делаем двойное шифрование
 
          mysqli_query($link, "INSERT INTO users SET user_login='".$login."',
          user_password='".$password."'");}
 
          
 
    
}
 
 
?>
 
 
<form action="register.php" method="post" >
LLogin <input name ="login" type="text"></br>
PPassword <input name="password" type="password"></br>
<input name="submit" type="submit" value="Anmelden">
</form>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2016, 19:23
Ответы с готовыми решениями:

Проверка логина из формы на наличие логина в базе данных
Пожалуюста подскажите что у меня неправильно работает в коде. Ошибок вродебы нет. Вообщем код должен получать данные из формы записывать их...

Авторизация - проверка логина и пароля
доброго дня...подскажите как можно реализовать авторизацию пользоваеля следующим образом: На форме 2 textbox.в 1 вводим логин,2 пароль.к...

Авторизация с проверкой логина и пароля
Здравствуйте. Пытаюсь сделать авторизацию с проверкой логина и пароля. Данные находятся в Access в таблице &quot;сотрудники&quot;, поля Фио...

10
 Аватар для Monster-95
53 / 53 / 26
Регистрация: 05.02.2013
Сообщений: 288
24.04.2016, 20:02
Ihva, Если честно не хороший вы примерчик с ходу нашли Я бы сделал примерно хотя-бы как-то так.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
    $link = mysqli_connect("localhost","user", "password", "books");//коннект к базе
    if(isset($_POST['submit'])){    
        $login = $_POST['login'];
        $err = array();
        
        if(!preg_match("/^[a-zA-Z0-9]+$/",$login)){ //проверяем логин
            echo $err[]= "Логин должен писаться латиницей";
        }
            
        if(strlen($_POST['login'])<3 or strlen($login)>30){
            echo $err[]="логин должен быть длиннее 3х и короче 30ти символов";
            
        }
/*
$query=mysqli_query($link, "SELECT COUNT(user_id) FROM users 
        WHERE user_login='".mysqli_real_escape_string($link, $login)."'");
Не знаю почем сделал так
*/   
 
 
        $query = mysqli_query($link, "SELECT login FROM users WHERE user_login='".mysqli_real_escape_string($link, $login)."'");//тут поиск происходит по столбцу Логин больше логики я думаю
        echo "$login ";
        
        if(mysqli_num_rows($query)>0){
            echo $err[]="логин уже занят";
        }     
     
        if(count($err)==0){//Если нет ошибок, то добавляем в БД нового пользователя
            $password=md5(md5(trim($_POST['password'])));//убираем пробелы, делаем двойное шифрование
            mysqli_query($link, "INSERT INTO users SET user_login='".$login."', user_password='".$password."'");
        }
    }
?>

HTML5
1
2
3
4
5
<form action="#" method="post" >
    Login <input name ="login" type="text"></br>
    PPassword <input name="password" type="password"></br>
    <input name="submit" type="submit" value="Anmelden">
</form>
Опять же в плане безопасности скрипт очень далек.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.04.2016, 20:44
Monster-95, Та и запрос кривой.
0
 Аватар для Monster-95
53 / 53 / 26
Регистрация: 05.02.2013
Сообщений: 288
24.04.2016, 20:49
JimUSA, Какой запрос имеется ввиду?
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.04.2016, 20:51
Monster-95, sql запись.
0
 Аватар для Monster-95
53 / 53 / 26
Регистрация: 05.02.2013
Сообщений: 288
24.04.2016, 20:52
JimUSA, Просто там два запроса, на выборку и на вставку, оба кривые?
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.04.2016, 20:57
Monster-95,

Есть
PHP
1
mysqli_query($link, "INSERT INTO users SET user_login='".$login."', user_password='".$password."'");
а нада
PHP
1
mysqli_query($link, "INSERT INTO `users`(`user_login`,`user_password`) VALUES('{$login}','{$password}')");
0
 Аватар для Monster-95
53 / 53 / 26
Регистрация: 05.02.2013
Сообщений: 288
24.04.2016, 20:59
JimUSA, Не буду отрицать, дальше выборки вообще не смотрел Просто подумал если дать абсолютно рабочий код человек потеряет интерес. Ну а вы без сомнений правы.
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 14
25.04.2016, 09:37  [ТС]
Monster-95, спасибо, работает. но... почему? Оо в чем разница?
выдает правда предупреждение
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\register.php on line 43
0
 Аватар для Monster-95
53 / 53 / 26
Регистрация: 05.02.2013
Сообщений: 288
25.04.2016, 09:45
Ihva,
Цитата Сообщение от JimUSA Посмотреть сообщение
Есть

PHP
1
mysqli_query($link, "INSERT INTO users SET user_login='".$login."', user_password='".$password."'");
а нада


PHP
1
mysqli_query($link, "INSERT INTO `users`(`user_login`,`user_password`) VALUES('{$login}','{$password}')");
А это вы не заметили?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
25.04.2016, 10:25
Цитата Сообщение от JimUSA Посмотреть сообщение
а нада
можно и так как написал автор
Синтаксис команды INSERT
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
либо
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=expression, col_name=expression, ...
либо
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2016, 10:25
Помогаю со студенческими работами здесь

Авторизация на Twitter: несоответствие логина и пароля
Помогите кто чем может ) Не могу авторизоваться на twitter: &quot;Введённые имя пользователя и пароль не совпадают с сохранёнными в нашей базе...

Авторизация в IIS без запроса логина и пароля в браузере
Вот какой вопрос: есть сервер W2k, на нем крутится IIS, есть пользователи, которые при загрузке своих машин вводят сетевые логины-пароли и...

Проверка логина
Всем привет. Опять возник вопрос по php, надеюсь на помощь добрых людей Есть форма регистрации. Далее задача следующая: при нажатии...

Проверка логина
что-то вехат ь не как не могу что за прикол вот смотрите есть крипт регитсрации &lt;? include ('connect.php'); //методу POST...

Проверка логина
Здравствуйте, не понимаю что не так. Только начинаю изучать джаваскрипт, читаю курсы, выполняю практические задания. На одном застрял. (При...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru