Обучение/Помощь новичкам | FILTER_VALIDATE_EMAIL
Тема закрыта by
SNEG
Нужно экранировать $_POST['email'] перед передачей в бд или выводом в браузер ? Типа echo htmlspecialchars($_POST['email']);
________
посл. ред. 18.12.2023 в 22:29; всего 8 раз(а); by SNEG
php
elseif(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))________
посл. ред. 18.12.2023 в 22:29; всего 8 раз(а); by SNEG
Нужно экранировать $_POST['email'] перед передачей в бд или выводом в браузер ? Типа echo htmlspecialchars($_POST['email']);
php
elseif(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
Да, нужно экранировать $_POST['email'] перед передачей в бд или выводом в браузер. Экранирование символов предотвращает выполнение вредоносного кода, который может быть введён в форму.
В вашем примере, функция htmlspecialchars() экранирует все специальные символы в строке, такие как <, >, &, " и '. Это необходимо, чтобы предотвратить инъекции HTML, JavaScript или других вредоносных кодов в браузер.
Функция filter_var() проверяет, является ли строка допустимым адресом электронной почты. Если строка не является допустимым адресом электронной почты, то она не будет экранирована.
В идеале, экранирование следует выполнять в обоих случаях, перед передачей в бд и перед выводом в браузер.
Вот пример того, как можно экранировать $_POST['email'] перед передачей в бд:
Вот пример того, как можно экранировать $_POST['email'] перед выводом в браузер:
В вашем примере, функция htmlspecialchars() экранирует все специальные символы в строке, такие как <, >, &, " и '. Это необходимо, чтобы предотвратить инъекции HTML, JavaScript или других вредоносных кодов в браузер.
Функция filter_var() проверяет, является ли строка допустимым адресом электронной почты. Если строка не является допустимым адресом электронной почты, то она не будет экранирована.
В идеале, экранирование следует выполнять в обоих случаях, перед передачей в бд и перед выводом в браузер.
Вот пример того, как можно экранировать $_POST['email'] перед передачей в бд:
php
$email = htmlspecialchars($_POST['email']);
// ...
// Перед передачей в бд
$stmt = $db->prepare("INSERT INTO users (email) VALUES (?)");
$stmt->bind_param("s", $email);
$stmt->execute();Вот пример того, как можно экранировать $_POST['email'] перед выводом в браузер:
php
$email = htmlspecialchars($_POST['email']);
// ...
// Вывод в браузер
echo "Ваш адрес электронной почты: $email";php
if(mysqli_query($mysqli, "INSERT INTO `".DB_PREFIX."_users` SET `email` = '".$_POST['email']."'"))Да не нужно , возьму так и оставлю )) потом чего отсос Петрович пришёл всему
php
<?php
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
if ($email) {
// success
}________
посл. ред. 19.12.2023 в 01:03; всего 2 раз(а); by PTS
php
<?php
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
if ($email) {
// success
}Таким не пользуюсь))