Вопрос новичка. Понимаю, что он может быть банальным, но всё же. Как можно сократить данный код PHP?
<?php
if(!empty($_POST['name']) and !empty($_POST['phone'])){
$name = trim(strip_tags($_POST['name']));
$phone = trim(strip_tags($_POST['phone']));
mail('yourmail@yourdomain.com', 'Письмо с адрес_вашего_сайта '.$_SERVER['SERVER_NAME'],
'Вам написал: '.$name.'<br />Его номер: '.$phone,"Content-type:text/html;charset=utf-8");
$success = 'Сообщение отправлено';
echo json_encode(array ('success' => $success));
}
?>
Я бы так переписал
function GetPostVar($name) {
if (isset($_POST[$name])
return trim(strip_tags($_POST['name']));
return ''
}
$name = GetPostVar('name');
$phone = GetPostVar('phone');
if(!empty($name) and !empty($phone)) {
mail(
'yourmail@yourdomain.com',
'Письмо с адрес_вашего_сайта ' . $_SERVER['SERVER_NAME'],
'Вам написал: '.$name.'<br />Его номер: '.$phone,"Content-type:text/html;charset=utf-8"
);
$success = 'Сообщение отправлено';
echo json_encode(array ('success' => $success));
}
В чем отличие от исходного кода?
$_POST вынесена в одну функцию. Что позволяет в дальнейшем изменять эту логику в одном месте. Например, вы решите, что strip_tags лишнее. Тогда вы уберете эту функцию только в одном месте, а не в каждом чтении параметра!empty() делается не для исходного значения, а для значения, возвращенного функцией GetPostVar(). Таким образом исходная проверка для поля состоящего из одних пробелов не сработает, а моя сработаетСовременные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости