> $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-инъекции, так что безопасность твоего кода равна нулю.
$text = '$cms->db->query("UPDATE users SET `password` = '$pass' WHERE `email` = '$_POST[email]'")'; (запрос должен быть именно в одинарных кавычках)
Код не работает. Причину знаю - неправильно построенный запрос. Но вот решение никак не могу найти. Помогите пожалуйста.