Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 02.01.2023
Сообщений: 1

Система авторизации

02.01.2023, 16:14. Показов 2290. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем приветики! Использую вот такой код для проверки есть ли вообще такой пользователь в бд

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$login = filter_var(trim($_POST['login_name']),
FILTER_SANITIZE_STRING);
$pass = filter_var(trim($_POST['login_password']),
FILTER_SANITIZE_STRING);
 
 
$mysql = new mysqli('localhost', 'root', '', 'users-bd');
$result = $mysql->query("SELECT*FROM `user` WHERE `login` = '$login' AND `pass` = '$pass'");
if ($result->num_rows == 0) {
echo "Такой пользователь не найден";
exit;
}
print_r($user);
exit();
 
$mysql->close();
 
header('Location: /');
?>
Но при попытке написать ник, который есть в бд ошибка "Такой пользователь не найден" всё равно выскакивает. Я новичок, поэтому даже этого не знаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2023, 16:14
Ответы с готовыми решениями:

После авторизации повторно перекидывает обратно на страницу авторизации
Так, у меня есть проблема. Как только авторизируюсь, перекидывает обратно на авторизацию. Вот код, login.php: &lt;? ...

Система авторизации
Форумчане помогайте. Я пень пнем но сделать это мне надо. Не почнимаю почему ошибка вылетает. И ладно бы только на login.php так она и на...

Система авторизации
Братцы, ткните слаборазбирающегося в его ошибки. Запарился я уже с этой авторизацией. Который день топчусь на месте. Уже все уроки на ютубе...

32
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
10.01.2023, 11:34
Студворк — интернет-сервис помощи студентам
Lazor, а причём тут php переменные?
Цитата Сообщение от Jewbacabra Посмотреть сообщение
О php переменных mysql ничего не знает и знать не может.
0
754 / 578 / 120
Регистрация: 26.02.2019
Сообщений: 3,116
Записей в блоге: 3
10.01.2023, 11:37
Цитата Сообщение от Jewbacabra Посмотреть сообщение
а причём тут php переменные?
Может при том, что именно они прописаны в запросе (да ещё в одинарных кавычках)?

Цитата Сообщение от Jewbacabra Посмотреть сообщение
О php переменных mysql ничего не знает и знать не может.
А никто с этим и не спорит.
0
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,954
10.01.2023, 11:38
Цитата Сообщение от Lazor Посмотреть сообщение
В данном примере вообще с кавычками беда.
Цитата Сообщение от Lazor Посмотреть сообщение
Зачем ты мне говоришь тоже самое что и я?
С кавычками там все идеально (если не учитывать возможную SQL-инъекцию). PHP-строка, содержащая переменные, в двойных кавычках, MySQL-строки в одинарных.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
10.01.2023, 11:39
Цитата Сообщение от Lazor Посмотреть сообщение
Может при том, что именно они прописаны в запросе (да ещё в одинарных кавычках)?
Они не прописаны в запросе, они прописаны в строке. Фактически мы через php код динамически создаём программу - sql запрос. И из строки в запрос это превратится только в момент передачи mysql серверу, где никакких переменных уже не будет.


PHP
1
2
3
4
5
6
7
8
9
$name = 'Моё имя';
$wrong_sql = "select * from t where name = $name";
echo 'Некорректный запрос: ', $wrong_sql, "\n";
$correct_sql = "select * from t where name = '$name'";
echo 'Корркетный запрос: ', $correct_sql, "\n";
/*
Некорректный запрос: select * from t where name = Моё имя
Корркетный запрос: select * from t where name = 'Моё имя'
*/
0
754 / 578 / 120
Регистрация: 26.02.2019
Сообщений: 3,116
Записей в блоге: 3
10.01.2023, 11:43
Цитата Сообщение от estic Посмотреть сообщение
Это переменные PHP. Про них тебе уже несколько раз написали.
Цитата Сообщение от estic Посмотреть сообщение
С кавычками там все идеально
Ты бы определился чем ты недоволен

Добавлено через 2 минуты
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Они не прописаны в запросе, они прописаны в строке.
"они прописаны в строке запроса" - так нормально?
Прописаны переменные, а не значения.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
в момент передачи mysql серверу, где никакких переменных уже не будет.
спасибо, КЭП
0
 Аватар для sad67man
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
10.01.2023, 12:20
Lazor, Вы же сами кидали ссылку на документацию. В двойных кавычках можно подставлять переменные. В результате получится строка с подставленными значениями.
https://www.php.net/manual/ru/... ng.parsing

И важны только внешние кавычки, заключающие саму строку. То, что внутри строки, заключенные в двойные кавычки есть одинарные - это уже никак не влияет на подстановку переменных, так как эти кавычки уже воспринимаются как простые символы.

PHP
1
2
3
$name = 'vasya';
 
echo "Hello '$name'"; // Hello 'vasya'
0
754 / 578 / 120
Регистрация: 26.02.2019
Сообщений: 3,116
Записей в блоге: 3
10.01.2023, 13:52
Цитата Сообщение от sad67man Посмотреть сообщение
И важны только внешние кавычки, заключающие саму строку. То, что внутри строки, заключенные в двойные кавычки есть одинарные - это уже никак не влияет на подстановку переменных, так как эти кавычки уже воспринимаются как простые символы.
Согласен-согласен. Я же уже признал, что лоханулся - не обратил внимание на наличие /ненужных тут/ двойных.
0
Эксперт PHP
3901 / 3239 / 1353
Регистрация: 01.08.2012
Сообщений: 10,917
11.01.2023, 04:10
Цитата Сообщение от Lazor Посмотреть сообщение
(я тоже буду отвечать вопросом на вопрос)
А что хорошего? Зачем они тут?
Ну вы же понимаете, зачем нужны апострофы? Чтобы подставить в запрос названия полей/таблиц, совпадающие с зарезервированными словами MySQL. А чтобы не думать каждый раз "а не является ли user или login зарезервированным словом?", проще всегда обрамлять все названия апострофами. Это не обязательно, но и плохого в этой практике не вижу.
1
754 / 578 / 120
Регистрация: 26.02.2019
Сообщений: 3,116
Записей в блоге: 3
11.01.2023, 09:24
Цитата Сообщение от Jodah Посмотреть сообщение
Ну вы же понимаете, зачем нужны апострофы?
Честно - нет (в данном случае).
Не помню, чтобы я их видел хоть в мануалах. (но я давно уже ничего такого не писал)

Цитата Сообщение от Jodah Посмотреть сообщение
Чтобы подставить в запрос названия полей/таблиц, совпадающие с зарезервированными словами MySQL. А чтобы не думать каждый раз "а не является ли user или login зарезервированным словом?", проще всегда обрамлять все названия апострофами.
Всё понятно. (Хотя именно тут они не нужны).
У меня другой подход - никогда не использовать то, что может быть потенциально зарезервировано (у меня хватает фантазии на префиксы, приставки и суффиксы). Кроме того я стараюсь хоть немного поизучать зарезервированные слова используемых приложений.
0
-8 / 8 / 0
Регистрация: 31.08.2022
Сообщений: 209
11.01.2023, 14:29
Jewbacabra, сейчас уже не вспомню как выглядел точно запрос, но у меня PDO переменные в кавычках закидывало в БД - именами, то есть получалось что-то вроде: '$a' в БД так и выглядело как $a
0
11.01.2023, 14:36

Не по теме:

Цитата Сообщение от Vily Vykidnye Посмотреть сообщение
'$a' в БД так и выглядело как $a
Похоже на использование одинарных кавычек

0
4 / 2 / 1
Регистрация: 24.01.2017
Сообщений: 74
14.01.2023, 00:42
Цитата Сообщение от Jodah Посмотреть сообщение
Это вообще не ошибка.
А что это по вашему? Он сам пишет что вводит ток логин, а запрос у него проверяет и то и то одновременно
Цитата Сообщение от maksorr2 Посмотреть сообщение
Но при попытке написать ник, который есть в бд ошибка "Такой пользователь не найден" всё равно выскакивает. Я новичок, поэтому даже этого не знаю.
0
Эксперт PHP
3901 / 3239 / 1353
Регистрация: 01.08.2012
Сообщений: 10,917
14.01.2023, 00:57
Цитата Сообщение от EvgeniiVIP Посмотреть сообщение
А что это по вашему?
Обычный алгоритм. Разделять его на 2 этапа (получение юзера из БД и сверку пароля) нужно когда в базе хранится хэш пароля.

Цитата Сообщение от EvgeniiVIP Посмотреть сообщение
Он сам пишет что вводит ток логин
Этого в тексте нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2023, 00:57

Система авторизации!
Добрый день. Проблема: скачал готовую систему регистрации и авторизации на сайт, подключил, настроил под себя, все работает! Форму...

Система авторизации пользователей
Доброго времени суток дамы и господа. Написал сайт на котором работает система авторизации. Но вот беда. Я не знаю как правильно настроить...

Система авторизации
Нужен Help. При запуски программы выскакивает окно авторизации , в базу данных я занёс таблицу содержащая 2 пользователя: Admin (пароль...

Система авторизации
Всем привет. Пишу приложение на Flask и клиент SPA на Vue.js. Хочу спросить, можете посоветовать систему авторизации на Flask? Похожую на...

Система авторизации
Помогите, как в C# на Form создать систему авторизации. То есть, в БД хранится логин, пароль. и вводя в textBox1 и textBox2 логин и пароль,...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru