2015-08-08 46 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語句中,用於檢查表單是否已提交。你可以檢查$_SERVER超全球,其中包含和關鍵字REQUEST_METHOD它會告訴你,如果頁面是通過POST(如提交表單時常見的)或GET(如在「典型」頁面加載中常見的)請求的。如果它的值是「POST」,那麼表單被提交,你可以處理數據,如果沒有,則忽略該代碼。

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

讓我們不要把機器人排除在外;-) –

相關問題