отправлять почту с PHP получил некоторые нежелательные значения - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть простая форма, которая получает имя, адрес электронной почты и состояние от пользователя и отправляет его по электронной почте.

Я получил письмо, и мой код работает нормально.Моя проблема в том, что когда я заполняю форму, все в порядке, но когда другой клиент заполняет форму, я получаю нежелательное значение, например 5c198d7a093bc в имени.вот мой код:

if(isset($_POST['btnSub'])){
    $name=$_POST['name'];
    $email=$_POST['email'];
    $state=$_POST['state'];
    if(empty($name) || empty($email) || empty($state)){
        header("location: http://example.com");
    }
    $to='support@example.com';
    $subject='thanks for send us info.';
    $message="
    <p style='font-size:18px;font-weight:bold;' >name: <b>".$name."</b></p>
    <p style='font-size:18px;font-weight:bold;' >email: <b>".$email."</b></p>
    <p style='font-size:18px;font-weight:bold;' >state: <b>".$state."</b></p></p>";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
    $headers .= "From: ".$email." \r\n" .
    "Reply-To: ".$email." \r\n" .
    "X-Mailer: PHP/" . phpversion();
    if(!mail($to,$subject,$message,$headers)){
        echo "error while sending email";
    }else{
        echo "message sent";
    }
}

и моя форма:

<form action="contact.php" method="post" id="index-form">
    <input name="name" type="text" />
    <input name="email" type="email" />
    <input name="state" type="text" />
    <input name="btnSub" type="submit" />
</form>

РЕДАКТИРОВАТЬ: Я добавил эту часть для проверки электронной почты:

if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
    echo "<center>Invalid email</center>";
}else{
    echo "<center>Valid Email</center>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...