Top.Mail.Ru
Ответы

Как вставить код в переменную php?

Есть такой код:
$text = '$cms->db->query("UPDATE users SET `password` = '$pass' WHERE `email` = '$_POST[email]'")'; (запрос должен быть именно в одинарных кавычках)

Код не работает. Причину знаю - неправильно построенный запрос. Но вот решение никак не могу найти. Помогите пожалуйста.

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

> $text = '$cms->db->query("UPDATE users SET `password` = '$pass' WHERE `email` = '$_POST[email]'")';
Господи спаси и сохрани. Это же надо додуматься. Как оно тебе заработает, если $text это строка в ОДИНАРНЫХ кавычках. Туда даже значения не подставятся. А что означает твоё `email` = '$_POST[email]' -- господа хацкеры, вкалывайте мне туда что угодно. Я раньше так делал, но я перед этим строку экранировал, убирал все теги и прочий мусор. Ты даже это не удосужился сделать.

$text = $cms->db->query("UPDATE users SET `password` = '$pass' WHERE `email` = '$_POST[email]'"); -- если сделаешь так, что в $text придёт либо true, либо false, в зависимости от итога, а вот САМО действие там НЕЛЬЗЯ хранить -- оно сразу выполняется.

https://www.php.net/manual/ru/book.pdo.php, https://www.php.net/manual/ru/pdo.prepare.php, https://www.php.net/manual/ru/security.database.sql-injection.php и https://www.php.net/manual/ru/language.types.string.php -- это нужно всё прочитать.

P.S. Поигрался я с твоим кодом и спокойно вытащил данные админа при помощи простейшей sql-инъекции, так что безопасность твоего кода равна нулю.

Аватар пользователя
Оракул
6лет
Аватар пользователя
Искусственный Интеллект
6лет

Интересно, для чего может потребоваться хранить PHP-код в переменной.

Удаленный ответ Ответ удалён