PHP联系表格不发送
我在页面上有一个联系表单,它将表单的详细信息发送到一个电子邮件地址。你可以在这里查看,www.wonder.iePHP联系表格不发送
该窗体的HTML如下:
<form id="form" name="form27" class="wufoo page" enctype="multipart/form-data" method="post" action="mailer.php">
<ul>
<li id="foli1">
<label class="op" id="title1" for="Field1">Name</label>
<div><input id="Field1" name="name" type="text" class="op required" value="" maxlength="255" tabindex="1" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>
</li>
<li id="foli2">
<label class="op" id="title2" for="Field2">Email</label>
<div><input id="Field2" name="email" type="text" class="op required email" value="" maxlength="255" tabindex="2" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>
</li>
<li id="foli3">
<label class="op" id="title3" for="Field3">Inquiry</label>
<div><textarea id="Field3" name="message" class="op required" rows="10" cols="50" tabindex="3" onkeyup="handleInput(this);" onchange="handleInput(this);"></textarea></div>
</li>
</ul>
<input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />
</form>
而对于我的PHP是这样的:
<?php
if(isset($_POST['submit'])) {
$to = "[email protected]";
$subject = "Email from Wonder.ie";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";
mail($to, $subject, $body);
} else {
echo "blarg!";
}
?>
是否一切看起来是正确的?我知道我的表单名称与PHP正确匹配,但我无法弄清楚为什么我没有收到您所知道的电子邮件。仅供参考,网站上的PHP有一个真实的电子邮件地址,而不是[email protected]。一旦我点击提交按钮,我被带到mailer.php,但我注意到回声“blarg!”所以我的猜测是电子邮件没有被发送。
谢谢!
你应该改变
if(isset($_POST['submit'])) {
到
if(isset($_POST['saveForm'])) {
尝试改变
if(isset($_POST['submit'])) {
到
if(isset($_POST['saveForm'])) {
这是因为$ _POST查找表单输入的名称,而不是类型。你检查
发送引导你的PHP代码,如果$_POST['submit']
设置,但在你的HTML代码,你给了提交按钮saveForm
的名字,所以你应该改变行
if(isset($_POST['submit'])) {
到
if(isset($_POST['saveForm'])) {
希望这有助于你:)
在你的HTML你有
<input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />
但在PHP文件时您检查$_POST["submit"]
,这是不对的。
您需要更改if(isset($_POST['submit']))
到if(isset($_POST['saveForm']))
或if(isset($_POST['submit']))
到if(isset($_POST))
有些电子邮件服务器将不接受没有适当的报头电子邮件,并且没有提供任何。这是我使用的。
http://us2.php.net/manual/en/function.mail.php
$header = "From: ".$fromText."\r\n";
$header .= "Cc: ".$ccText."\n";
$header .= "Reply-To : ".$fromText."\r\n";
$header .= "Return-Path : ".$fromText."\r\n";
$header .= "X-Mailer: PHP\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
mail($toText, $subjectText, $msgText, $header, '-f'.$fromText);
你的问题是它的倒出来blarg。 它肯定后没有达到你的
代码 - >
mail($to, $subject, $body);
和的名义提交改为
'saveForm'
顺便说一下:) ..
只是试图
mail($to, $subject, $body);
在x.php
,它和恰克上传,主题和正文,以正确的事情 ,如果它发送,则邮件功能工作正常。
if(@mail($emailRecipient, $subject, $message, $headers))
{
echo "Mail Sent Successfully";
}else{
echo "Mail Not Sent";
}
这也是一个很好的代码,我已经在计算器 发现检查邮件功能工作。
您使用if(isset($_POST['submit'])) {
,但是,你必须提交按钮的名称保存为saveForm
因此,使用if(isset($_POST['saveForm'])) {
这是100%正确的;当你访问$ _POST中的变量时,它们通过表单元素的name属性进行标记。 – Erik 2010-02-19 20:38:36