2016-02-11 2 views
-1

Итак, я пытаюсь создать контактную форму, которая проверяет ввод пользователя, чтобы хакеры не отправляли коды и пытались потребовать только номер, текст и адрес электронной почты. Я уже разработал форму и импортировал свой php-файл. Контакт из будет отправлен на мою учетную запись gmail. но каждый раз, когда я тестирую php, он позволяет вводить любые типы данных независимо от того, будет ли это число, а буквы отправлены и наоборот. Если бы я мог помочь, сказав мне, где я ошибся, это было бы здорово. Я начинаю программировать и имею только знания, полученные из школы, но я хорошо разбираюсь в html и css, но имею проблемы с проверкой php. Форма отправляет электронное письмо, но, как я уже сказал, он позволяет использовать любой вход.Проблемы с формой контакта и подтверждением ввода

<?php 
$name = $_POST['name']; 
$tel = $_POST['tel']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$from = 'From: www.webdesignheros.com'; 
$to = '[email protected]'; 
$subject = 'Service Email for HeenanTech'; 
    $tel = filter_input(INPUT_POST, 'tel', FILTER_SANITIZE_INT); 
    $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING|FILTER_FLAG_NO_ENCODE_QUOTES); 
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); 
    $message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING|FILTER_FLAG_NO_ENCODE_QUOTES); 

$body = "From: $name\n Phone: $tel\n Email: $email\n Message: $message\n"; 
?> 

<?php 
if ($_POST['submit']){ 
    if(mail($to, $subject, $body, $from)){ 
    echo'<p>Thank you for your email!</p>'; 
    } else { 
    echo '<p> Oops! Something went wrong, try sending your message again</p>'; 
    } 
} 

?> 

Дополнительно форму можно найти на сайте [http://webdesignheros.com/Contact.html][1]

[1]: http://webdesignheros.com/Contact.html и если кто-то может сказать мне, как отклонить определенный вклад до представить, что было бы удивительным, тоже. например, если введена некорректная запись, и они переходят к следующему входу, это отклонит ее и не позволит нажать кнопку отправки. я бы использовал pattern="a-z" в html или мне нужно будет добавить javascript для этого?

+1

Что именно здесь не работает? Это весь код, который у вас есть или есть больше, чем это? – Maximus2012

+0

Есть ли у вас проверка клиента? (javascript, f.e. jquery-validate - http://jqueryvalidation.org/) – Altenrion

+0

1) Я не думаю, что есть FILTER_SANITIZE_INT, но есть FILTER_SANITIZE_NUMBER_INT. 2) Числа считаются строками, когда они с буквами. Например: «My123» является допустимой строкой. – mrunion

ответ

2
<?php 
    if (isset($_POST["submit")){ 
$name = $_POST["name"]; 
    $tel = $_POST["tel"]; 
    $email = $_POST["email"]; 
    $message = $_POST["message"]; 
    $from = "From: www.webdesignheros.com"; 
    $to = "[email protected]"; 
    $subject = "Service Email for HeenanTech"; 
    $body = "From: $name\n Phone: $tel\n Email: $email\n Message: $message\n"; 
    mail($to, $subject, $body, $from); 

     if(mail($to, $subject, $body, $from)){ 
     echo'<p>Thank you for your email!</p>'; 
     } else { 
     echo '<p> Oops! Something went wrong, try sending your message again</p>'; 
     } 
    } 

    ?> 
+0

Спасибо, что отлично поработали. Я забыл об утверждении «isset»! который заставил его удалить специальные символы. – Tony

Смежные вопросы