我正在尝试实施一个简单而有效的联系表单。该页面的HTML如下所示。我正在使用的mail.php表单也列在下面。我希望联系表单要做的是需要字段,如果用户没有填写必填字段,它会将它们发送回带有错误代码的相同表单。我认为我很接近,但由于某种原因,它在提交表单,填写或清空时给我一个错误代码。你可以看到它,而不是在darthvixcustomsabers.com使用Apache服务器,看看。我也希望能够通过使用textarea来指定css中的cols / rows,但这也不起作用。
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo <a href="contact.html"></a>;
}
else
{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("horgantm@gmail.com", $subject, $message, $from);
echo "Email sent!";
}
}
?>
<!doctype html>
<html>
<head>
<title> DV Custom Sabers </title>
<meta charset="utf-8">
<link type="text/css" rel="stylesheet" href="style/kotorsale.css" />
<meta name="viewport" content="width=device-width" />
</head>
<div class="header"><a href="index.html">Darthvix Custom Sabers</a></div>
<div class="header1">DV Custom Sabers is the place to go for your saber needs!</div>
<div class="logo"><a href="index.html"><img src="images/logo.png" alt="schedule" height="200" width="350" border="0"></a></div>
<ul id="nav">
<li><a href="index.html">Home</a></li>
<li><a href="aboutme.html">About Me</a></li>
<li><a href="services.html">Services</a></li>
<li><a href="Gallery.html">Gallery</a></li>
<li><a href="kotorsale.html">For Sale</a></li>
<li><a href="buildlog.html">Build Log</a></li>
<li><a href="contact.html"> Contact Us</a></li>
</ul>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
</div>
</body>
</html>
答案 0 :(得分:1)
您为什么要使用这行代码?
<form action="mail.php" method="POST" enctype="multipart/form-data">
您只发送数据,没有要发送的文件图像,最好使用此
<form action="mail.php" method="POST">
删除enctype。仅当有图像或文件时才使用enctype ... 使用正确的标签
答案 1 :(得分:0)
您还没有以清晰的方式提供您的信息,但希望我能正确理解您的问题。
首先,您在contact.html中的表单操作需要指向您的PHP电子邮件脚本。以下内容:
<form action="" method="POST" enctype="multipart/form-data">
应该是:
<form action="mail.php" method="POST" enctype="multipart/form-data">
以下echo语句中缺少引号:
echo <a href="contact.html"></a>;
这应该是:
echo '<a href="contact.html"></a>';
此外,如果您尝试将用户重定向回表单,如果任何字段为空,那么您将需要的不仅仅是页面上显示的空链接。一种简单的方法是替换以下内容:
echo '<a href="contact.html"></a>';
使用:
header( 'location:contact.html' );
这会将用户引导回原始联系表单。不幸的是,这会让用户感到困惑。您可能希望将contact.html更改为contact.php,以便利用PHP显示错误消息。