Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » PHP и авторизация в MySQL

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. Наткнулся на следующую проблему. Имеется удаленный MySQL сервер. Пароль у юзера, с которым я коннекчусь, следующего вида : "C4/mDzs/1x8t60SY". Любые менеджеры баз данных коннектятся без проблем, программы на Delphi с разными библиотеками доступа к базам тоже работают прекрасно, но из PHP коннект не выполняется. Создал на сервере нового пользователя с более вменяемым паролем и соединился сразу. Отсюда вопрос: можно ли каким-то образом привести вышеуказанную строку к более удобоваримому для PHP формату или же нужно менять пароль, исключив из него как минимум слэши (сильно подозреваю, что дело именно в них)

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 08:41 07-05-2024
fscpsd



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergGur
Цитата:
Для экранирования символов в PHP можно использовать функцию addslashes().
Она возвращает строку с обратным слешем перед символами, которые нужно экранировать.
Экранируются следующие символы:
- одинарная кавычка ('),
- двойная кавычка ("),
- обратный слеш (\),
- NUL (байт null).
Иногда функцию addslashes() некорректно пытаются использовать для предотвращения SQL-инъекций. Вместо неё рекомендуется использовать подготовленные запросы или функции экранирования соответствующих модулей работы с базами данных.

Источник: официальное руководство.

Всего записей: 1926 | Зарегистр. 16-09-2010 | Отправлено: 08:52 07-05-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fscpsd
эм.. и как это относится к вопросу?
 
SergGur
есть раздел по вебпрограммированию и там тема по php/mysql.
сообщение об ошибке как выглядит? и версия MySQL?

Всего записей: 15242 | Зарегистр. 20-09-2014 | Отправлено: 09:08 07-05-2024 | Исправлено: Mavrikii, 09:09 07-05-2024
SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'merlin'@'5.29.134.181' (using password: YES) in C:\OSPanel\domains\localhost\index.php on line 10
 
MySQL 8.0.36-0ubuntu0.22.04.1
 

Цитата:
есть раздел по вебпрограммированию и там тема по php/mysql.

 
Прошу прощения, что написал не туда. Навскидку залез в список тем этого раздела и нашел сразу несколько вопросов по PHP
 
 
fscpsd
 
$conn = new mysqli("...Host...", "...User...", addslashes("C4/mDzs/1x8t60SY"), "...Base...");
 
Та же самая ошибка. Я что-то не то делаю? Я не программист PHP, это случайная работа - надо оттестировать хранимую процедуру, вызываемую из модуля PHP

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 09:16 07-05-2024 | Исправлено: SergGur, 09:22 07-05-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergGur
на будущее - MySql/PHP: общие вопросы

Цитата:
addslashes("C4/mDzs/1x8t60SY")

не нужны там никакие addslashes
 
у вас в базе юзер как определен? как merlin@% или как то иначе?

Всего записей: 15242 | Зарегистр. 20-09-2014 | Отправлено: 09:27 07-05-2024
fscpsd



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Цитата:
эм.. и как это относится к вопросу?  
Вы правы, ерунду сморозил впопыхах, прошу прощения))

Всего записей: 1926 | Зарегистр. 16-09-2010 | Отправлено: 09:32 07-05-2024
SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Да, именно так - merlin@%
Только что провел эксперимент. У новосозданного юзера изменил пароль на неверный. Ошибка та же
 
Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'test1'@'5.29.134.181' (using password: YES) in C:\OSPanel\domains\localhost\index.php on line 9
 
С правильным паролем проблем нет

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 09:33 07-05-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergGur

Цитата:
С правильным паролем проблем нет

и с этим проблем быть не должно. пока не совсем понятно в чем проблема, нужно протестировать.
он так напрямую и задается или в какой то переменной хранится?
 
ps: проверил, проблем никаких.

Всего записей: 15242 | Зарегистр. 20-09-2014 | Отправлено: 10:19 07-05-2024 | Исправлено: Mavrikii, 10:27 07-05-2024
SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, я использую напрямую
 
$conn = new mysqli("...", "merlin", "C4/mDzs/1x8t60SY"), "...");
 
Естественно, хост и имя базы тоже введены напрямую, безо всяких переменных
 
P. S. Только что попробовал задать пароль через переменную. То же самое, проблема именно в самой строке
 
P. P. S. Создал тестового пользователя с таким же паролем на своем локальном серваке. Подключается. Даже и непонятно, где искать проблему - в PHP или в MySQL

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 10:31 07-05-2024 | Исправлено: SergGur, 10:40 07-05-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergGur
версия php какая?

Всего записей: 15242 | Зарегистр. 20-09-2014 | Отправлено: 10:40 07-05-2024
SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
PHP 7.4. У меня стоит OpenServer 5.4.3

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 10:41 07-05-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergGur
покажите результат
select user, plugin from mysql.user;
ту строку, что с этим юзверем.

Всего записей: 15242 | Зарегистр. 20-09-2014 | Отправлено: 10:43 07-05-2024 | Исправлено: Mavrikii, 10:44 07-05-2024
SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
merlin    mysql_native_password

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 10:47 07-05-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergGur
тогда непонятно. может в php7.4 есть проблемы, у меня 8.
попробуйте аналогичное сделать на сервере с убунтой, не удаленно.
тогда будет точно ясно, что дело в php, а не в mysql

Всего записей: 15242 | Зарегистр. 20-09-2014 | Отправлено: 10:50 07-05-2024
SergGur

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, спасибо, попробую, если на том серваке вообще есть PHP. Но судя по тому, что этот же самый PHP достукивается до локального сервера с таким же паролем, дело, видимо, все-таки в MySQL...

Всего записей: 59 | Зарегистр. 05-05-2006 | Отправлено: 10:52 07-05-2024 | Исправлено: SergGur, 11:00 07-05-2024
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » PHP и авторизация в MySQL


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru