简单的联系表格问题

时间:2015-12-07 03:27:46

标签: php forms email webforms

我没有看到此联系表单的问题。这是一个简单的电子邮件联系表单。任何帮助,将不胜感激。表单通过但没有提交任何内容,也没有发送电子邮件。

同样不会在电子邮件通过的页面上显示任何响应。但显然所有的PHP都正确解析,因为我没有收到错误。

<h2>Contact AirKrete</h2>
<?php 
$action=$_REQUEST['action']; 
if ($action=="")    /* display the contact form */ 
{ 
?>
<form action="" enctype="multipart/form-data" method="post"><p><label><input type="checkbox" name="locate " id="locate "><strong>Locate an Installer</strong></label><strong><label><input type="checkbox" name="become" id="become">Become an Installer</label></strong></p>
    <div class="left">Name:<div>
      <input name="name" type="text" id="name" size="40" />
    </div></div>
<div class="left">Email:<div><input name="mailfrom" type="text" size="40" /></div></div>
<div class="left">Street:<div><input name="street" type="text" id="street" size="40" /></div></div>
<div class="left">City:<div><input name="city" type="text" id="city" size="40" /></div></div>
<div class="left">State:<div><input name="state" type="text" id="state" size="10" /> Zip:
  <input name="zip" type="text" id="zip" size="15" />
</div></div>
<div class="left">Country:<div><input name="country" type="text" id="country" size="40" /></div></div>
<div class="left">Phone:<div><input name="phone" type="text" id="phone" size="40" /></div></div></p>

<p>The fields above are REQUIRED<br>
<strong>How did you hear about AirKrete<span style="font-size:11.0pt; ">®</span>? <br>
Please make a selection.<span id="sprycheckbox1"><span class="checkboxRequiredMsg"></span></span></strong></p><div class="radiox"><label><input type="radio" name="Connection" value="friend" id="Connection_0">Friend</label></div>
<div class="radiox"><label><input type="radio" name="Connection" value="jobspec" id="Connection_1">Job Specification</label></div>
<div class="radiox"><label><input type="radio" name="Connection" value="hgtv" id="Connection_2">HGTV Promotion</label></div>
<div class="radiox"><label><input type="radio" name="Connection" value="web" id="Connection_3">Web Browsing</label></div>
<div class="radiox"><label><input type="radio" name="Connection" value="radio" id="Connection_4">Radio</label></div>
<div class="radiox"><label><input type="radio" name="Connection" value="tv" id="Connection_5">TV</label></div>
<div class="radiox"><label><input type="radio" name="Connection" value="other" id="Connection_6">Other</label></div></p>
<p class="clear-fix">&nbsp;</p>
<div><p><strong>Comments:</strong><br></p></div>
<p><textarea name="Comments" cols="43" rows="10" id="Comments"></textarea></p>
<p><label>If you have Attachments....</label></p>
<p><input name="file_attachment" type="file" size="30" /></p>
<p>When completed please click Send Email Button</p>
   <input type="submit" value="Send Email" />

   <input type="hidden" name="redirect" value="http://www.airkrete.com/airkrete_thankyou.php" /><p>Thank You</p>
    </form>
<?php 
}  
else                /* send the submitted data */ 
{
$locate=$_REQUEST['locate'];
$become=$_REQUEST['become'];
$mailfrom=$_REQUEST['mailfrom'];
$street=$_REQUEST['street'];
$city=$_REQUEST['city'];
$state=$_REQUEST['state'];
$zip=$_REQUEST['zip'];
$country=$_REQUEST['country'];
$phone=$_REQUEST['phone'];
$connection=$_REQUEST['Connection'];
$comments=$_REQUEST['Comments'];
$name=$_REQUEST['name']; 
if ((($locate=="")&&($become==""))||($mailfrom=="")||($street=="")||($city=="")||($state=="")||($zip=="")||($country=="")||($phone=="")||($connection=="")||($name==""))
    { 
    echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
    } 
else{   
    if($locate==""){      
        $message==$name+" from "+$street+" "+city+" "+$state+" "+$zip+" "+$country+" sent you an email via the contact form on the airkrete website. "+$name+" would like to become an installer. "+$name+" Their phone number is "+$phone+". They heard about you from: "+$connection+" And left you the following comment: "+$comments;
    }else if($become==""){
        $message==$name+" from "+$street+" "+city+" "+$state+" "+$zip+" "+$country+" sent you an email via the contact form on the airkrete website. "+$name+" would like to locate an installer. "+$name+" Their phone number is "+$phone+". They heard about you from: "+$connection+" And left you the following comment: "+$comments;
    }else{
        $message==$name+" from "+$street+" "+city+" "+$state+" "+$zip+" "+$country+" sent you an email via the contact form on the airkrete website. "+$name+" would like to become an installer and would also like to locate one. "+$name+" Their phone number is "+$phone+". They heard about you from: "+$connection+" And left you the following comment: "+$comments;
    }
    $from="From: $name<$email>\r\nReturn-path: $email"; 
    $subject="Message sent using your contact form"; 
    mail("joseph.roberts@usa.com", $subject, $message, $from); 
    echo "Email sent!"; 
    } 
}   
?> 

1 个答案:

答案 0 :(得分:1)

您的修复方法如下:

1)没有名为&#39; action&#39;在代码中。 将<input type="submit" value="Send Email" />更改为<input type="submit" value="Send Email" name="action" />

2)+不用于PHP中的连接。请改用.

3)==不用于值分配。请改用= 即使用$message =而非$message ==

此外,您使用了$mail变量,该变量没有定义。请改为使用$mailfrom为您指定了电子邮件值。

此外,元素locate的名称中还有一个空格也可以删除。

此外,我对邮件功能的工作有疑问,因为在发送邮件之前没有设置任何标题。

请查看以下链接,详细了解邮件功能在PHP中的工作原理以及需要哪些参数。

http://www.w3schools.com/php/func_mail_mail.asp

http://php.net/manual/en/function.mail.php

请尝试以下代码:

<h2>Contact AirKrete</h2>
<?php 
    $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : "" ; 
    if ($action=="")    /* display the contact form */ 
    {
    ?>
        <form action="" enctype="multipart/form-data" method="post">
            <p>
                <label>
                    <input type="checkbox" name="locate" id="locate">
                    <strong>Locate an Installer</strong>
                </label>
                <strong>
                    <label>
                        <input type="checkbox" name="become" id="become">Become an Installer
                    </label>
                </strong>
            </p>
            <div class="left">
                Name:
                <div>
                    <input name="name" type="text" id="name" size="40" />
                </div>
            </div>
            <div class="left">
                Email:
                <div>
                    <input name="mailfrom" type="text" size="40" />
                </div>
            </div>
            <div class="left">
                Street:
                <div>
                    <input name="street" type="text" id="street" size="40" />
                </div>
            </div>
            <div class="left">
                City:
                <div>
                    <input name="city" type="text" id="city" size="40" />
                </div>
            </div>
            <div class="left">
                State:
                <div>
                    <input name="state" type="text" id="state" size="10" /> Zip:
                    <input name="zip" type="text" id="zip" size="15" />
                </div>
            </div>
            <div class="left">
                Country:
                <div>
                    <input name="country" type="text" id="country" size="40" />
                </div>
            </div>
            <div class="left">
                Phone:
                <div>
                    <input name="phone" type="text" id="phone" size="40" />
                </div>
            </div>
            <p>The fields above are REQUIRED<br>
                <strong>
                    How did you hear about AirKrete<span style="font-size:11.0pt; ">®</span>? <br>Please make a selection.
                    <span id="sprycheckbox1">
                        <span class="checkboxRequiredMsg"></span>
                    </span>
                </strong>
            </p>
            <div class="radiox"><label><input type="radio" name="Connection" value="friend" id="Connection_0">Friend</label></div>
            <div class="radiox"><label><input type="radio" name="Connection" value="jobspec" id="Connection_1">Job Specification</label></div>
            <div class="radiox"><label><input type="radio" name="Connection" value="hgtv" id="Connection_2">HGTV Promotion</label></div>
            <div class="radiox"><label><input type="radio" name="Connection" value="web" id="Connection_3">Web Browsing</label></div>
            <div class="radiox"><label><input type="radio" name="Connection" value="radio" id="Connection_4">Radio</label></div>
            <div class="radiox"><label><input type="radio" name="Connection" value="tv" id="Connection_5">TV</label></div>
            <div class="radiox"><label><input type="radio" name="Connection" value="other" id="Connection_6">Other</label></div></p>
            <p class="clear-fix">&nbsp;</p>
            <div><p><strong>Comments:</strong><br></p></div>
            <p><textarea name="Comments" cols="43" rows="10" id="Comments"></textarea></p>
            <p><label>If you have Attachments....</label></p>
            <p><input name="file_attachment" type="file" size="30" /></p>
            <p>When completed please click Send Email Button</p>
            <input type="submit" value="Send Email" name="action" />
            <input type="hidden" name="redirect" value="http://www.airkrete.com/airkrete_thankyou.php" /><p>Thank You</p>
        </form>
    <?php 
    } 
    else                /* send the submitted data */ 
    {
        $locate = isset($_REQUEST['locate']) ? $_REQUEST['locate'] : "" ;
        $become = isset($_REQUEST['become']) ? $_REQUEST['become'] : "" ;
        $mailfrom = $_REQUEST['mailfrom'];
        $street = $_REQUEST['street'];
        $city = $_REQUEST['city'];
        $state = $_REQUEST['state'];
        $zip = $_REQUEST['zip'];
        $country = $_REQUEST['country'];
        $phone = $_REQUEST['phone'];
        $connection = $_REQUEST['Connection'];
        $comments = $_REQUEST['Comments'];
        $name = $_REQUEST['name']; 

        if ((($locate == "") && ($become == "")) || ($mailfrom == "") || ($street == "") || ($city == "") || ($state == "") || ($zip == "") || ($country == "") || ($phone == "") || ($connection == "") || ($name == ""))
        { 
            echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
        } 
        else
        {   
            if($locate == "")
            {      
                $message = $name." from ".$street." ".$city." ".$state." ".$zip." ".$country." sent you an email via the contact form on the airkrete website. ".$name." would like to become an installer. ".$name." Their phone number is ".$phone.". They heard about you from: ".$connection." And left you the following comment: ".$comments;
            }
            else if($become == "")
            {
                $message = $name." from ".$street." ".$city." ".$state." ".$zip." ".$country." sent you an email via the contact form on the airkrete website. ".$name." would like to locate an installer. ".$name." Their phone number is ".$phone.". They heard about you from: ".$connection." And left you the following comment: ".$comments;
            }
            else
            {
                $message = $name." from ".$street." ".$city." ".$state." ".$zip." ".$country." sent you an email via the contact form on the airkrete website. ".$name." would like to become an installer and would also like to locate one. ".$name." Their phone number is ".$phone.". They heard about you from: ".$connection." And left you the following comment: ".$comments;
            }
            $from = "From: $name<$mailfrom>\r\nReturn-path: $mailfrom"; 
            $subject = "Message sent using your contact form";

            if(mail("joseph.roberts@usa.com", $subject, $message, $from)) 
                echo "Email sent!";
            else
                echo "Email not sent.";
        } 
    }   
?>