Как проверить мою контактную форму в PHP?Решение моего кода - PullRequest
0 голосов
/ 07 февраля 2019

У меня на сайте есть контактная форма с обязательным полем для электронной почты.Я пытаюсь проверить поле ввода в PHP, чтобы пользователи не отправляли пустое поле электронной почты.Я пробовал несколько уроков, но пока безуспешно.Буду признателен, если кто-нибудь здесь поможет мне исправить мой код ниже

<?php
$recipient_email    = "info@example.com"; //recepient
$from_email         = "info@example.com";

if($_POST){

    $subject = 'Example.com';
    $from = "info@example.com";
    $to = "recipient@your-server.com";
    $name   = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 
    $street = filter_var($_POST["strasse"], FILTER_SANITIZE_STRING); 
    $tel    = filter_var($_POST["tel"], FILTER_SANITIZE_STRING);
    $email  = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
    $name   = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 
    $street = filter_var($_POST["strasse"], FILTER_SANITIZE_STRING); 
    $email  = filter_var($_POST["email"], FILTER_SANITIZE_STRING); 
    $tel    = filter_var($_POST["tel"], FILTER_SANITIZE_STRING); 

    $message_body =  "Message from $name\n";
    $message_body .=  "------------------------------\n";

    $message_body .=  "Name: $name\n";
    $message_body .=  "Street: $street \n";
    $message_body .=  "Email: $email \n";
    $message_body .=  "Telefon: $tel \n";

    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "From:".$from_email."\r\n"; 
    $headers .= "Reply-To: ".$email."\r\n";
    $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n"; 

    //message text
    $body = "--$boundary\r\n";
    $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
    $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; 
    $body .= chunk_split(base64_encode($message_body)); 
    exit;
}

$headers = "From:".$from_email."\r\n".  
            "Reply-To: ".$email. "\r\n" .
            "X-Mailer: PHP/" . phpversion();
$body = $message_body;
}

$sentMail = mail($recipient_email, $subject, $body, $headers);
if($sentMail) //output success or failure messages
{       
    header("Location: http://www.example.com");
}else{
    print 'Could not send mail! Please check your PHP mail configuration.';  
    exit;
}
}
?>

1 Ответ

0 голосов
/ 07 февраля 2019

Так как вы уже проверяете свои переменные, вам просто нужно просто, если это выйдет из кода.После того, как ваши filter_vars делают это:

... start of your code

    $name   = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 
    $street = filter_var($_POST["strasse"], FILTER_SANITIZE_STRING); 
    $tel    = filter_var($_POST["tel"], FILTER_SANITIZE_STRING);
    $email  = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
    $name   = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 
    $street = filter_var($_POST["strasse"], FILTER_SANITIZE_STRING); 
    $email  = filter_var($_POST["email"], FILTER_SANITIZE_STRING); 
    $tel    = filter_var($_POST["tel"], FILTER_SANITIZE_STRING); 

if(!$email) {
  print 'Your email is wrong.';
  exit;
}

... continue with your code
...