我有一个非常基本的形式。表单正在发送到电子邮件,但它不会返回任何数据,也不确定我缺少的是什么。
这是我的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( "test@testing.com", "Email Contact",
"Name: $name\nSize: $size\n",
"From: Test Server" );
?>
此电子邮件将成功收到,但看起来会像这样...
名称:
尺寸:
它返回标签但不返回字段。任何帮助将不胜感激。
答案 0 :(得分:4)
请务必指定您的表单应该张贴,以确保通过$_POST
提供变量:
<form id="contact" action="process.php" method="POST"/>
答案 1 :(得分:1)
尝试:
<form id="contact" action="process.php" method="post" >
答案 2 :(得分: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( "test@testing.com", "Email Contact", "Name: $name\nSize: $size\n", "From: Test Server" );
}
您也可以使用$_REQUEST
,但它比$_POST
更容易受到攻击。因为$_REQUEST
不介意数据的来源;接受来自$_GET
和$_POST
的数据。