Loading...
PHP/MySQL | PDO Запрос (безопасность)
Добрый, изучаю PDO в данный момент, а именно подготовленные запросы и прочее

if (isset($_POST['submit'])) {
$login = $_POST['login'];
$password= $_POST['password'];
}


$table = 'update user set login = ?, password = ?, sex= ? where id = ? limit 1';
$ssq = db::$pdo->prepare($table );
$ssq ->execute([$login, $password, $gender, ID]);

Переменную $login,$password фильтровать не обязательно в данном случае? Запрос ведь подготовленный получается.

Благодарю
Он подготовленный для базы, а вдруг пароль имеет 1 цифру, или логин существует?
Нужно максимально валидиловать, а потом только записывать значения в базу.
AlertWeb , ты не понял, суть самого запроса, то что там проверки на логин и пароли есть это и так понятно
AlertWeb , имеется в виду не нужно ли применять всякие костыли типо htmlspecialchars real_escape_string и т д к $login = $_POST['login'];
________
посл. ред. 27.10.2023 в 14:07; всего 1 раз(а); by Drages
Drages ,
if (isset($_POST['submit'])) {
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
$password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
}

________
посл. ред. 27.10.2023 в 14:09; всего 1 раз(а); by Менталист
Drages (27 окт 2023, в 14:05)
AlertWeb , имеется в виду не нужно ли применять всякие костыли типо htmlspecialchars real_escape_string и т д к $login = $_POST['login'];
Зачем? Просто в валидации убери так, чтобы пробелы не фигачили, типо trim() , запомни, валидируй любые мелочи, это ощутимо будет
Менталист (27 окт 2023, в 14:08)
Drages ,
if (isset($_POST['submit'])) {
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
$password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
}
Классно) интересно, может стоило ему сказать что существует ларка? )
Нет не надо. Если будут проблемы, можешь обернуть в конструкцию try/catch
try{
$stmt=$pdo->prepare(....);
$stmt->execute([...]);
}
catch(PDOException $e){
echo 'error: '.$e->getMessage();
}
дополнительно фильтровать не надо, он сам делает обвертку апострофами место ? = ''
исходя с этого оно не подходит для конструкций: select * from tablename order by ? limit ?
что при ордере, что при лимите не сработает, потому что заменит на order by 'id' и с лимитом limit '0', '10'
AlertWeb (27 окт 2023, в 15:48)
Классно) интересно, может стоило ему сказать что существует ларка? )
мне?)
Онлайн: 1
Время:
Gen. 0.1057
(c) ByMAS.RU 2010-2025