Как использовать функцию htmlspecialchars () в контактной форме php (которая использует функцию mail ()) - PullRequest
0 голосов
/ 21 января 2019

У меня есть контактная форма php, которая отправляет данные по электронной почте, и я хотела бы ее санировать. Я понимаю, что метод php для этого делается с помощью функции htmlspecialchars().

Я новичок в php и не могу понять, как применить это к моему контакту из данных? Я помещаю свою функцию mail() в нее?

Любая помощь будет потрясающей.

PHP

if($_POST['submit']) {

    if(!$_POST['name']) {
        $error="<br>- Please enter your name";
    }
    if(!$_POST['email']) {
        $error.="<br>- Please enter your email";
    }
    if(!$_POST['telephone']) {
        $error.="<br>- Please enter your telephone number";
    }
    if(!$_POST['message']) {
        $error.="<br>- Please enter your message";
    }
    if(!$_POST['radio']) {
        $error.="<br>- Please confirm you agree to the Privacy Policy";
    }

    if ($error) {
        $result='<div class="alert error">Whoops, there is an error. Please correct the following: '.$error.'</div>';
    } else {
        mail("example@example.com", "Contact Message", "Name: ".$_POST['name']."
        Email: ".$_POST['email']."
        Telephone: ".$_POST['telephone']."
        Company: ".$_POST['company']."
        Budget: ".$_POST['budget']."
        Message: ".$_POST['message']);

        {
            $_POST= array();
            $result='<div class="alert thankyou" role="alert">THANK YOU! WE\'LL BE IN TOUCH SHORTLY...</div>';
        }

    }
}

1 Ответ

0 голосов
/ 21 января 2019

Функция htmlspecialchars() используется для экранирования специальных символов, чтобы предотвратить возможные атаки XSS, если вы используете эту функцию правильным образом. Вы можете использовать эту функцию для message.

Например:

mail("example@example.com", "Contact Message", "Name: ".htmlspecialchars($_POST['name'])."
    Email: ".htmlspecialchars($_POST['email'])."
    Telephone: ".htmlspecialchars($_POST['telephone'])."
    Company: ".htmlspecialchars($_POST['company'])."
    Budget: ".htmlspecialchars($_POST['budget'])."
    Message: ".htmlspecialchars($_POST['message']));

    {
        $_POST= array();
        $result='<div class="alert thankyou" role="alert">THANK YOU! WE\'LL BE IN TOUCH SHORTLY...</div>';
    }

Любой html, который у вас есть в вашем сообщении, будет экранирован. Я предлагаю вам также прочитать эту статью, чтобы получить полное представление о том, как правильно использовать эту функцию. При правильном использовании достаточно ли htmlspecialchars для защиты от всех XSS?

...