我发现一个很好的html邮件webform在线感谢CSS技巧的人,一切似乎工作正常。该表单使用PHP作为安装在Apache上的模块。在表格中,我要求用户的姓名,电子邮件地址和评论。除用户名外的所有内容都到达我的邮箱。我似乎无法找到这不起作用的原因。这是我的HTML代码:
<div id="form_container">
<form method="post" name="contact_form" action="contactengine.php">
<table>
<tr>
<td class="description-column">
<label class="description" for="Name">Name </label>
</td>
<td>
<span><input id="Name" type="text" maxlength="455" value=""/ size="41></span>
</td>
</tr>
<tr>
<td class="description-column">
<label class="description" for="Email">Email </label>
</td>
<td>
<span><input id="Email" name="Email" type="text" maxlength="455" value=""/ size="41">
</span>
</td>
</tr>
<tr>
<td class="description-column">
<label class="description last" for="Message">Message </label>
</td>
<td>
<span>
<textarea id="Message" class="comment-box" name="Message" maxlength="455">
</textarea>
</span>
</td>
</tr>
<tr colspan="2">
<td></td>
<td class="buttons">
<input type="hidden" name="form_id" value="" />
<input type="submit" name="submit" value="Submit" class="submit-button" />
</td>
</tr>
</table>
</form>
</div>
这是PHP代码:
<?php
$EmailFrom = "[email protected];"
$EmailTo = "[email protected]";
$Subject = "Mail";
$Name = Trim(stripslashes($_POST['Name']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
我假设下的PHP代码//发送邮件会插入用户进入邮箱的一切,发送到我的邮箱。这意味着它将在$ Body下输入所有数据,其中包括$ Name。但它永远不会给我起名字。 我也想知道为什么在第一个字段“$ EmailFrom”中,我应该输入一个固定的电子邮件地址(在这种情况下是'[email protected]'),而用户在html表单中输入他的地址并在邮件中发送我收到。 $ EmailFrom字段仅供我查看谁发送了邮件而无需打开邮件。它也应该是用户的邮件地址或用户的名字。
我希望自己明白了吗?
在此先感谢,我已经找到了许多有价值的答案在本网站关于其他主题:)
B带name
属性
'stripslashes'?为什么?你是否在启用Magic Quotes的过时服务器上停留,或者你是否想要中断用户输入? – Quentin
你为什么用'meta'而不是'Location' HTTP头重定向人? – Quentin
我在2007年通过在线教程发现了此表单,因此我假设某些功能可能会被弃用。但只是要通知,我可以删除反斜杠,如果是的话,我会怎么做? –