Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
5 / 5 / 5
Регистрация: 03.01.2015
Сообщений: 115

Регистрация проходит, авторизация - нет

14.05.2015, 17:34. Показов 1615. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP/HTML
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
<?
$connect = mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("tutorials");
if(isset($_POST['submit'])) {
    $username = $_POST['username'];
    $login = $_POST['login'];
    $password = $_POST['password'];
    $r_password = $_POST['r_password'];
    if($password == $r_password) {
        $password = md5($password);
        $query = mysql_query("INSERT INTO users VALUES('', '$username', '$login', '$password')") or die(mysql_error());
    }
    else {
        die("Пароли не совпадают");
    }
}
 <!-- end Registr block -->
 
 
if(isset($_POST['enter_submit'])) {
    $e_login = $_POST['enter_login'];
    $e_pass = md5($_POST['enter_password']);
    $query_enter = mysql_query("SELECT * FROM users WHERE login = $enter_login");
    $user_data = mysql_fetch_array($query_enter);
    if($user_data['password'] == $enter_password) {
        echo "Ok, you came";
    }
    else {
        echo "WTF???????????";
    }
}
 
<form method="post" action="register.php">
<input type="text" name="username" placeholder="Введите имя" required> <br>
<input type="text" name="login" placeholder="Введите имя пользователя" required> <br>
<input type="password" name="password" placeholder="Введите пароль" required> <br>
<input type="password" name="r_password" placeholder="Повторите пароль" required> <br>
<input type="submit" name="submit" value="Регистрация"> <br>
</form>
 
<form method="post" action="register.php">
<input type="text" name="enter_login" placeholder="Введите ваш логин" required>
<input type="password" name="enter_password" placeholder="Введите ваш пароль" required>
<input type="submit" name="enter_submit" value="Вход">
</form>
Стоит denwer, в sql через phpmyadmin пользователи при регистрации добавляются, а когда уже пытаюсь войти
выдаёт ошибку "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\examples\reg_auth\ register.php on line 24" Хотя пишет удачный вход "OK, you came"(то-есть что в echo указано), хотя такая надпись висит даже когда неверный пароль. В sql в табличке тоже всё верно 4 строки всего: id-username-login-password.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.05.2015, 17:34
Ответы с готовыми решениями:

Регистрация не проходит в БД
Регистрация не проходит, зарегистрированные данные(login,password и т.д.) не сохраняются в базе. В чем может быть дело, вот код и таблица...

Авторизация не проходит
написал такой скрипт, только вот не пойму почему всегда срабатывает что &quot;авторизация не прошла&quot;, хотя введенные данные в БД...

Авторизация не проходит
Доброго времени суток! Помогите пожалуйста понять, куда дальше рыть в авторизации: 1) Есть таблица: CREATE TABLE IF NOT EXISTS...

15
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
14.05.2015, 18:00
Цитата Сообщение от hoob777 Посмотреть сообщение
$enter_login"
это откуда берется, может $e_login?

Добавлено через 4 минуты
Цитата Сообщение от hoob777 Посмотреть сообщение
$enter_password
и это тоже
0
5 / 5 / 5
Регистрация: 03.01.2015
Сообщений: 115
14.05.2015, 21:26  [ТС]
fanatikus, Блин я щас не за тем компом, не смогу проверить. А так это взялось из формы входа, я же по другому поля назвал, и кнопка там по другому называется. Я просто добавил enter_.
Вот ошибка
"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\examples\reg_auth\ register.php on line 24"
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
14.05.2015, 21:41
Цитата Сообщение от hoob777 Посмотреть сообщение
$e_login = $_POST['enter_login'];
а в запросе
Цитата Сообщение от hoob777 Посмотреть сообщение
$query_enter = mysql_query("SELECT * FROM users WHERE login = $enter_login");
неужели не понятно? вы присваеваете переменной $e_login значение $_POST['enter_login'], а в запросе у вас login = $enter_login. в результате, запрос возвращает false и mysql_fetch_array() получает boolean(логическое значение), о чем вам и сообщают в описании ошибки
1
5 / 5 / 5
Регистрация: 03.01.2015
Сообщений: 115
15.05.2015, 09:37  [ТС]
fanatikus, Всё поменял как вы указали, вот полностью код, но ошибка та же что и была, что не так ?
PHP/HTML
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
<?php 
$connect = mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("tutorials");
if(isset($_POST['submit'])) {
    $username = $_POST['username'];
    $login = $_POST['login'];
    $password = $_POST['password'];
    $r_password = $_POST['r_password'];
    if($password == $r_password) {
        $password = md5($password);
        $query = mysql_query("INSERT INTO users VALUES('', '$username', '$login', '$password')") or die(mysql_error());
    }
    else {
        die("Пароли не совпадают");
    }
}
/* end Registr block */
if(isset($_POST['enter'])) {
    $e_login = $_POST['e_login'];
    $e_password = $_POST['e_password'];
    
    $query = mysql_query("SELECT * FROM users WHERE login=$e_login");
    $user_data = mysql_fetch_array('$query');
    
    if($user_data['password'] == $e_password) {
        echo "ENTER";
    }
    else {
        echo "QUIT";
    }
}
?>
<form method="post" action="register.php">
<input type="text" name="username" placeholder="Введите имя" required> <br>
<input type="text" name="login" placeholder="Введите имя пользователя" required> <br>
<input type="password" name="password" placeholder="Введите пароль" required> <br>
<input type="password" name="r_password" placeholder="Повторите пароль" required> <br>
<input type="submit" name="submit" value="Регистрация"> <br>
</form>
 
<form method="post" action="register.php">
<input type="text" name="e_login" placeholder="Введите ваш логин" required>
<input type="password" name="e_password" placeholder="Введите ваш пароль" required>
<input type="submit" name="enter" value="Вход">
</form>
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
15.05.2015, 09:44
Цитата Сообщение от hoob777 Посмотреть сообщение
$user_data = mysql_fetch_array('$query');
кавычки зачем?
Цитата Сообщение от hoob777 Посмотреть сообщение
if($user_data['password'] == $e_password) {
в бд хранится md5 пароля, а сравнивается с нехешированным.

Ну и то что приходит от клиента необходимо проверять перед использованием.
0
5 / 5 / 5
Регистрация: 03.01.2015
Сообщений: 115
15.05.2015, 09:54  [ТС]
Jewbacabra, Убрал кавычки, и вообще убрал md5(), и всё равно ошибка, вот код
PHP/HTML
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
<?php 
$connect = mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("tutorials");
if(isset($_POST['submit'])) {
    $username = $_POST['username'];
    $login = $_POST['login'];
    $password = $_POST['password'];
    $r_password = $_POST['r_password'];
    if($password == $r_password) {
        $query = mysql_query("INSERT INTO users VALUES('', '$username', '$login', '$password')") or die(mysql_error());
    }
    else {
        die("Пароли не совпадают");
    }
}
/* end Registr block */
if(isset($_POST['enter'])) {
    $e_login = $_POST['e_login'];
    $e_password = $_POST['e_password'];
    
    $query = mysql_query("SELECT * FROM users WHERE login=$e_login");
    $user_data = mysql_fetch_array($query);
    
    if($user_data['password'] == $e_password) {
        echo "ENTER";
    }
    else {
        echo "QUIT";
    }
}
?>
<form method="post" action="register.php">
<input type="text" name="username" placeholder="Введите имя" required> <br>
<input type="text" name="login" placeholder="Введите имя пользователя" required> <br>
<input type="password" name="password" placeholder="Введите пароль" required> <br>
<input type="password" name="r_password" placeholder="Повторите пароль" required> <br>
<input type="submit" name="submit" value="Регистрация"> <br>
</form>
 
<form method="post" action="register.php">
<input type="text" name="e_login" placeholder="Введите ваш логин" required>
<input type="password" name="e_password" placeholder="Введите ваш пароль" required>
<input type="submit" name="enter" value="Вход">
</form>
Регистрация проходит, пользователь добавляются в табличку, а авторизация не проходит
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
15.05.2015, 10:01
Лучший ответ Сообщение было отмечено hoob777 как решение

Решение

hoob777, вместо mysql_fetch_array mysql_fetch_assoc
ну и на будущее http://www.phpfaq.ru/debug

Цитата Сообщение от hoob777 Посмотреть сообщение
Вот скрин
еще ошибка в select запросе. как отыскать есть по ссылке выше
1
5 / 5 / 5
Регистрация: 03.01.2015
Сообщений: 115
15.05.2015, 10:01  [ТС]
Вот скрин
Миниатюры
Регистрация проходит, авторизация - нет  
0
5 / 5 / 5
Регистрация: 03.01.2015
Сообщений: 115
15.05.2015, 10:44  [ТС]
Jewbacabra, Вообщем mysql_fetch_assoc тоже не помогло, всё равно спасибо за помощь

Добавлено через 24 минуты
Всё я разобрался, ошибка была в строке запроса
PHP
1
$query = mysql_query("SELECT * FROM users WHERE login=$e_login");
Я добавил ещё одни кавычки на сравнение логина при регистрации и при вводе для авторизации, вот верная строка
PHP
1
$query = mysql_query("SELECT * FROM users WHERE login='$e_login'");
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
15.05.2015, 13:04
Цитата Сообщение от hoob777 Посмотреть сообщение
$query = mysql_query("SELECT * FROM users WHERE login='$e_login'");
тогда уже так
PHP
1
$query = mysql_query("SELECT * FROM users WHERE login='".$e_login."'");
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
15.05.2015, 13:08
fanatikus, чем это лучше?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
15.05.2015, 13:13
Цитата Сообщение от Jewbacabra Посмотреть сообщение
fanatikus, чем это лучше?
имхо, так правильней(хотя, могу и ошибаться)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
15.05.2015, 13:15
Цитата Сообщение от fanatikus Посмотреть сообщение
имхо, так правильней
если и так используются двойные кавычки, то строку лучше не разрывать, это мешает читаемости кода
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
15.05.2015, 13:19
Цитата Сообщение от Jewbacabra Посмотреть сообщение
это мешает читаемости кода
не знаю, мне например, не мешает
0
0 / 0 / 0
Регистрация: 28.04.2015
Сообщений: 32
23.05.2015, 20:46
А можно спросить, вы здесь ссылаетесь на register.php
<form method="post" action="register.php">
что в нем содержится?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2015, 20:46
Помогаю со студенческими работами здесь

не проходит регистрация пользователя и в базу не добавляется новый пользователь
полагаю дело в функции if (filter_input(INPUT_GET,&quot;reg&quot;)) наверно неправильно чтото написала &lt;?php session_start(); unset...

Не проходит авторизация через curl
Всем доброго утра, народ помогите пожалуйста с авторизацией через curl, третий день ломаю голову, не могу авторизоваться на сайте...

авторизация/регистрация/и т.д.
я могу написать приложения для авторизации и регистрации вопрос не в этом... проблема состоит в следующем: вот например пользователь...

Авторизация(регистрация) ВК
Добрый вечер! Вот подскажите мне, в общем цель такова у меня. Сделать быструю регистрацию у себя на сайте с помощью ВК. регистрацию...

Регистрация и авторизация
Доброго времени суток!!! Помогите решить следующую задачу: Необходимо зарегистрировать пользователя. Внести все его данные в БД....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru