2015-08-08 2 views
0

Недавно я сделал форму для своей веб-страницы, но я продолжаю получать электронные письма из своей формы. Хотя я не отправляю форму, я продолжаю получать электронные письма.Почему я продолжаю получать электронные письма из своей формы?

И если я действительно отправлю свою форму, я получаю 2 или 3 письма. 1 с информацией моей формы и 2 без информации.

код PHP:

<?php 
//reciever 
$to  = '[email protected]'; 
//subject 
$subject = 'new costumer'; 
//form information 
$title = ""; 
$name = ""; 
$companyname = ""; 
$mail = ""; 
$extrapages = ""; 
$sow = ""; 
if(isset($_POST['title'])){ $title = $_POST['title']; } //title 
if(isset($_POST['name'])){ $name = $_POST['name']; } //name 
if(isset($_POST['companyname'])){ $companyname = $_POST['companyname']; }   //company name 
if(isset($_POST['mail'])){ $mail = $_POST['mail']; } //email 
if(isset($_POST['extrapages'])){ $extrapages = $_POST['extrapages']; } //extra   pages 
if(isset($_POST['sow'])){ $sow = $_POST['sow']; } //site on web 
$message =" 
title = $title 
name = $name 
companyname = $companyname 
mail = $mail 
extra pages = $extrapages 
site on web = $sow 
"; 
//header 
$headers = 'From: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
//mail code 
mail($to, $subject, $message, $headers); 
?> 

HTML код:

       <form action="" method="POST"> 
           <em>Last name:</em></br> 
           <select name="title" id="title"> 
           <option>Mr.</option> 
           <option>Mrs.</option> 
           <option>Dr.</option> 
           </select> 
           <input type="text" size="25" name="name" id="name" placeholder="Last name" required="required"><p /><br> 
           <em>company name:</em></br> 
           <input type="text" size="25" name="companyname" id="companyname" placeholder="Company Name" required="required"><p /><br> 
           <em>Email:</em></br> 
           <input type="text" size="25" name="mail" id="mail" placeholder="email" required="required"><p /><br> 
           <em>how many extra pages:</em><br> 
           <select name="extrapages" id="extrapages"> 
           <option>0</option> 
           <option>1</option> 
           <option>2</option> 
           <option>3</option> 
           <option>4</option> 
           <option>5</option> 
           <option>6</option> 
           <option>7</option> 
           <option>8</option> 
           <option>9</option> 
           </select><br><br> 
           <em>Would you like us to put your site on the internet?</em><br> 
           <input type="radio" name="sow" id="sow" value="Yes" required="required">Yes 
           <input type="radio" name="sow" id="sow" value="No" required="required">No<br><br> 
           <input type="Submit" value="Send!" name="submit"> 
          </form> 
+0

звучит как некоторая форма автобота для меня –

ответ

1

Поскольку ваша форма установлена ​​для запуска каждый раз, когда страница загружается. Вы не проверяете, отправлена ​​ли форма. У вас также есть абсолютно никакой проверки.

Чтобы исправить этот обернуть весь этот код в инструкции if, которая проверяет, была ли форма отправлена. Вы можете проверить superglobal $_SERVER, который содержит, и клавишу с именем REQUEST_METHOD, которая сообщит вам, была ли запрошена страница через POST (как это обычно бывает при отправке формы) или GET (как это обычно бывает при «типичной» загрузке страницы). Если это значение «POST», тогда форма была отправлена, и вы можете обрабатывать данные, если нет, игнорировать этот код.

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    // your code goes here 
} 
+0

Не будем оставлять ботов из уравнения ни ;-) –

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