Я пытался много узнать о попытке получить безопасную форму html, чтобы отправить мне электронное письмо. Я создал форму, но мне интересно, насколько это безопасно. Я еще не добавил элементы управления электронной почтой.Является ли моя форма безопасной?
Поскольку это будет на сайте, я боюсь любых инъекций. То, что я сделал до сих пор, это использовать htmlentities() для защиты действия, использовать функцию test_input из школ w3 и использовать функцию require, но я знаю, что ее можно легко извлечь.
Заранее благодарен!
<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["telnr"]);
$comment = test_input($_POST["message"]);
echo"Bedankt voor het invullen, we nemen zo snel mogelijk contact met u op.";
}
else{
?>
<form action="<?php echo htmlentities($_SERVER["PHP_SELF"]);?>" method="post">
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">naam</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" placeholder="naam" required>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">e-mail</label>
<div class="col-sm-10">
<input type="email" class="form-control" name="email" placeholder="e-mail" required>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">tel.nr</label>
<div class="col-sm-10">
<input type="tel" class="form-control" name="telnr" placeholder="telefoonnummer" required>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">bericht</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="message" placeholder="bericht" required>
</div>
</div>
<div class="form-group row text-center">
<div class="offset-sm-2 col-sm-10">
<button type="submit" class="btn btn-primary">Verstuur bericht!</button>
</div>
</div>
</form>
<?php } ?>
Что это * сделать *? Кажется, вы не отправляете почту или не сохраняете данные. –
Он ничего не делает, как объяснялось выше. Строки, которые формируют почту формы, должны быть добавлены. – KevinPV
есть предопределенные функции для дезинфекции ввода: [filter_input] (http://php.net/manual/en/function.filter-input.php) (заменяет ваш пользовательский 'test_input()') – Jeff