2014-01-08 97 views
0

我有一個非常基本的形式。表單正在發送到電子郵件,但它不返回任何數據,不知道我缺少什麼。簡單的PHP聯繫表單返回空白結果?

這是我的HTML代碼...

<form id="contact" action="process.php" /> 

    <label for="name">Your name</label> 
    <input type="text" name="name" id="name" required> 

    <label for="size">Your Size</label> 
    <select id="size" name="size" required> 
     <option value="">Choose a Size</option> 
     <option value="s">S</option> 
     <option value="m">M </option> 
     <option value="l">L</option> 
    </select> 

    <input type="submit" name="submit" value="Submit"> 

</form> 

...這裏是我的process.php文件...

<?php 
// Get Data 
$name = strip_tags($_POST['name']); 
$size = strip_tags($_POST['size']); 

// Send Message 
mail("[email protected]", "Email Contact", 
"Name: $name\nSize: $size\n", 
"From: Test Server"); 
?> 

此電子郵件將被成功接收,但會看像這樣...

名稱:

尺寸:

它返回標籤,但不是字段。任何幫助將不勝感激。

回答

4

一定要指定您的形式應張貼,以確保變量都可以通過$_POST

<form id="contact" action="process.php" method="POST"/> 
+3

dangit you beat me! +1 – Rottingham

+0

是的,我也是:( – Robbert

+0

人們坐在這裏一遍又一遍地擊中F5 ...廢話它就像我看到'新問題',所以我打F5,它已經回答了 – Rottingham

1

嘗試:

<form id="contact" action="process.php" method="post" > 
+0

讓我們看看有多少人複製第一個答案... – Rottingham

0

除非你不定義窗體的發送方法是假定爲GET作爲默認值。

使用method="POST"

<form id="contact" action="process.php" method="post"> 
... 
</form> 

除了這個,你必須首先檢查是否表單發佈:

if(isset($_POST)) { 
    $name = strip_tags($_POST['name']); 
    $size = strip_tags($_POST['size']); 

    // Send Message 
    mail("[email protected]", "Email Contact", "Name: $name\nSize: $size\n", "From: Test Server"); 
} 

您也可以使用$_REQUEST但它比$_POST更加脆弱。因爲$_REQUEST不介意數據是如何來的;接受$_GET$_POST的數據。