PHP联系人表单不工作,代码在同一文件中

PHP联系人表单不工作,代码在同一文件中,php,contact-form,Php,Contact Form,我的联系方式有问题,我收到了这样一条消息“注意:未定义索引:联系人姓名在…”。这基本上就是我正在使用的代码 <?php //Receive all the data to process $contact_name = $_POST['contact_name']; $contact_company = $_POST['contact_company'];

我的联系方式有问题,我收到了这样一条消息“注意:未定义索引:联系人姓名在…”。这基本上就是我正在使用的代码

<?php
                    //Receive all the data to process
                    $contact_name = $_POST['contact_name'];
                    $contact_company = $_POST['contact_company'];
                    $contact_country = $_POST['contact_country'];
                    $contact_phone = $_POST['contact_phone'];
                    $contact_email = $_POST['contact_email'];
                    $contact_subject = $_POST['contact_subject'];
                    $contact_message = $_POST['contact_message'];
                    $contact_headers = 'Sent by: '.$contact_name.' ('.$contact_email.');'.' Phone: '.$contact_phone.'; Country: '.$contact_country.'; Company: '.$contact_company;
                    $contact_to = 'name@email.com';

                    if($contact_name != '' || $contact_country != '' || $contact_email != '' || $contact_message != ''){  
                        mail($contact_to, $contact_subject, $contact_message, $contact_headers); //calling php mail function
                        echo 'Thank you for contacting us.<br><br><a href="contact.php">Go back.</a>';
                    }else{  
                        echo 'There was an error sending the message.<br><br><a href="index.php">Go back.</a>';  
                    }
                ?>

这是HTML

<form id="main-contact-form" action="contact.php" method="post">
                    <p>
                        <label for="contact_name" class="label-s required">NAME</label>
                        <input type="text" role="form-item" name="contact_name" id="contact_name" required>
                    </p>
                    <p>
                        <label for="contact_company" class="label-s">COMPANY</label>
                        <input type="text" role="form-item" name="contact_company" id="contact_company">
                    </p>
                    <p>
                        <label for="contact_country" class="label-s required">COUNTRY</label>
                        <input type="text" role="form-item" name="contact_country" id="contact_country" required>
                    </p>
                    <p>
                        <label for="contact_phone" class="label-s">PHONE</label>
                        <input type="text" role="form-item" name="contac_phone" id="contact_phone">
                    </p>
                    <p>
                        <label for="contact_email" class="label-s required">EMAIL</label>
                        <input type="email" role="form-item" name="contact_email" id="contact_email" required>
                    </p>
                    <p>
                        <label for="contact_subject" class="label-s">SUBJECT</label>
                        <input type="text" role="form-item" name="contact_subject" id="contact_subject">
                    </p>
                    <p>
                        <label for="contact_message" class="label-s required">MESSAGE</label>
                        <textarea role="form-item" name="contact_message" id="contact_message" class="avoid-resize-h" required></textarea>
                    </p>
                    <input id="contact-submit" type="submit" role="btn" class="btn-primary btn-l expand" value="SEND">
                </form>


名称

公司

国家

电话

电子邮件

主题

消息

当我将php代码放在另一个文件中并更改操作时,它是有效的,但我尝试使用它将php代码放在同一个文件中,然后出现错误消息


我希望你能帮助我。谢谢。

请务必检查是否设置了
$\u POST
数据,否则用户第一次访问该数据时,该数据将为空,您将看到未定义的索引错误

将与表单相关的php代码包装为:


如果(!empty($\u POST)){

请务必检查
$\u POST
数据是否已设置,否则用户第一次访问它时,它将为空,并且您将看到类似的未定义索引错误

将与表单相关的php代码包装为:


if(!empty($\u POST)){

当它们位于同一文件中且为空数组时,您没有检查是否设置了
$\u POST
。请添加if语句以检查
$\u POST

<?php
       if($_POST) {
            //Receive all the data to process
            $contact_name = $_POST['contact_name'] ? : '';
            $contact_company = $_POST['contact_company'] ? : '';
            $contact_country = $_POST['contact_country'] ? : '';
            $contact_phone = $_POST['contact_phone'] ? : '';
            $contact_email = $_POST['contact_email'] ? : '';
            $contact_subject = $_POST['contact_subject'] ? : '';
            $contact_message = $_POST['contact_message'] ? : '';
            $contact_headers = 'Sent by: '.$contact_name.' ('.$contact_email.');'.' Phone: '.$contact_phone.'; Country: '.$contact_country.'; Company: '.$contact_company;
            $contact_to = 'name@email.com';

            if($contact_name != '' || $contact_country != '' || $contact_email != '' || $contact_message != ''){  
                  mail($contact_to, $contact_subject, $contact_message, $contact_headers); //calling php mail function
                  echo 'Thank you for contacting us.<br><br><a href="contact.php">Go back.</a>';
            }else{  
                  echo 'There was an error sending the message.<br><br><a href="index.php">Go back.</a>';  
            }
      }
?>

$contact\u headers变量中包含的内容可能会附加到您的邮件中。这些标题是供服务器发送邮件的。

您没有检查
$\u POST
是否在同一文件中设置,并且是空数组。请添加if语句以检查
$\u POST

<?php
       if($_POST) {
            //Receive all the data to process
            $contact_name = $_POST['contact_name'] ? : '';
            $contact_company = $_POST['contact_company'] ? : '';
            $contact_country = $_POST['contact_country'] ? : '';
            $contact_phone = $_POST['contact_phone'] ? : '';
            $contact_email = $_POST['contact_email'] ? : '';
            $contact_subject = $_POST['contact_subject'] ? : '';
            $contact_message = $_POST['contact_message'] ? : '';
            $contact_headers = 'Sent by: '.$contact_name.' ('.$contact_email.');'.' Phone: '.$contact_phone.'; Country: '.$contact_country.'; Company: '.$contact_company;
            $contact_to = 'name@email.com';

            if($contact_name != '' || $contact_country != '' || $contact_email != '' || $contact_message != ''){  
                  mail($contact_to, $contact_subject, $contact_message, $contact_headers); //calling php mail function
                  echo 'Thank you for contacting us.<br><br><a href="contact.php">Go back.</a>';
            }else{  
                  echo 'There was an error sending the message.<br><br><a href="index.php">Go back.</a>';  
            }
      }
?>

$contact_headers变量中的内容可能会附加到邮件中。邮件头是供服务器发送邮件的。

谢谢,它可以工作,但现在我遇到了一个新错误:警告:mail():“sendmail_from”not set in php.ini或custom”from:“header missing in…on line 30;其中第30行是mail()所在的行函数为。请参阅更新,您的标题不正确。您需要在变量中包含“发件人:”字符串。谢谢,它可以工作,但现在我遇到了一个新错误:警告:mail():“sendmail_From”未在php.ini中设置或“custom”From:“第30行……中缺少标题;其中第30行是mail()所在的行)函数为。请参阅更新,您的标题不正确。您需要在变量中包含“From:”字符串。