【问题标题】:Contact Form not sending all information联系表未发送所有信息
【发布时间】:2016-03-03 01:14:29
【问题描述】:

在询问之前检查了所有其他资源,但它没有回答我的问题。无论如何,为什么我没有收到所有信息?谢谢。

这是我的 PHP:

    <?php

$message = "Name: " . $_POST['name'];
$message .= "\r\nPhone " . $_POST['phone'];
$message .= "\r\nEmail: " . $_POST['email'];
$message .= "\r\nRequested Form of Contact: " . $_POST['reach'];
$message .= "\r\nEvent Type: " . $_POST['event'];
$message .= "\r\nRequested Dates: " . $_POST['date'];
$message .= "\r\nNumber of Attendees: " . $_POST['attendees'];
$message .= "\r\nOvernight Guests: " . $_POST['overnight'];
$message .= "\r\nMeals Included?: " . $_POST['meals'];
$message .= "\r\nAdditional Information: " . $_POST['message'];

$to = 'nosdg@testfakel.com'; 
$email_subject = "Fake Subject"; 
$email_body = $message;
$headers = "From: iauto@can.com\n";
$headers .= "Reply-To: $email_address";

mail($to,$email_subject,$email_body,$headers);
return true;            
?>

HTML 表单:

   <form name="sentMessage" id="contactForm" novalidate>
                <div class="control-group form-group">
                    <div class="controls">
                        <label>Full Name:</label>
                        <input type="text" class="form-control" id="name">
                        <p class="help-block"></p>
                    </div>
                </div>
                <div class="control-group form-group">
                    <div class="controls">
                        <label>Phone Number:</label>
                        <input type="text" class="form-control" id="phone">
                    </div>
                </div>
                <div class="control-group form-group">
                    <div class="controls">
                        <label>Email Address:</label>
                        <input type="email" class="form-control" id="email">
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Best way for us to reach back to you:</label>
                        <input type="text" class="form-control" id="reach">
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Type of event: (ex. sports/wedding/business) </label>
                        <input type="text" class="form-control" id="event">
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Date or Weekend Desired (ex. 4/16-4/25) </label>
                        <input type="text" class="form-control" id="date">
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Number of Attendees:</label>
                        <input type="text" class="form-control" id="attendees">
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Overnight Guests</label>
                        <input type="text" class="form-control" id="overnight">
                    </div>

                </div>
                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Meals Included? (Yes/No/Maybe)</label>
                        <input type="text" class="form-control" id="meals"> 

                    </div>
                </div>

                <div class="control-group form-group">
                    <div class="controls">
                        <label>Additional Information:</label>
                        <textarea rows="10" cols="100" class="form-control" id="message" maxlength="39999" style="resize:none"></textarea>
                    </div>
                </div>
                <div id="success"></div>
                <!-- For success/fail messages -->
                <button type="submit" class="btn btn-primary">Send Message</button>
            </form>

知道为什么我只收到姓名、电话、电子邮件和附加信息吗?

谢谢!!

【问题讨论】:

  • 你需要使用'name'属性。您目前只使用“id”属性。
  • 你必须给这些输入元素一个'name'属性。我不知道你为什么会收到其中一些,虽然它们没有这样的属性。

标签: php forms contact


【解决方案1】:

替换此表单并请分享 javascript 代码(如果您使用过)

 <form name="sentMessage" id="contactForm" novalidate>
                <div class="control-group form-group">
                    <div class="controls">
                        <label>Full Name:</label>
                        <input type="text" class="form-control" id="name" name='name'>
                        <p class="help-block"></p>
                    </div>
                </div>
                <div class="control-group form-group">
                    <div class="controls">
                        <label>Phone Number:</label>
                        <input type="text" class="form-control" id="phone" name='phone'>
                    </div>
                </div>
                <div class="control-group form-group">
                    <div class="controls">
                        <label>Email Address:</label>
                        <input type="email" class="form-control" id="email"  name='email'>
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Best way for us to reach back to you:</label>
                        <input type="text" class="form-control" id="reach"  name='reach'>
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Type of event: (ex. sports/wedding/business) </label>
                        <input type="text" class="form-control" id="event"  name='event'>
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Date or Weekend Desired (ex. 4/16-4/25) </label>
                        <input type="text" class="form-control" id="date"  name='date'>
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Number of Attendees:</label>
                        <input type="text" class="form-control" id="attendees"  name='attendees'>
                    </div>
                </div>

                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Overnight Guests</label>
                        <input type="text" class="form-control" id="overnight"  name='overnight'>
                    </div>

                </div>
                  <div class="control-group form-group">
                    <div class="controls">
                        <label>Meals Included? (Yes/No/Maybe)</label>
                        <input type="text" class="form-control" id="meals" name='meals'> 

                    </div>
                </div>

                <div class="control-group form-group">
                    <div class="controls">
                        <label>Additional Information:</label>
                        <textarea rows="10" cols="100" class="form-control" id="message" name='name' maxlength="39999" style="resize:none"></textarea>
                    </div>
                </div>
                <div id="success"></div>
                <!-- For success/fail messages -->
                <button type="submit" class="btn btn-primary">Send Message</button>
            </form>

【讨论】:

    【解决方案2】:

    作为社区 wiki 发布。

    &lt;form&gt; 如果省略则默认为 GET 方法。 (参考我的脚注)

    <form name="sentMessage" id="contactForm" novalidate>
    

    所以添加一个 POST 方法:

    <form method="post" name="sentMessage" id="contactForm" novalidate>
    

    因为您使用的是 POST 数组。

    那么你所有的输入都不带有 name 属性,你只依赖一个 id。

    <input type="text" name="name" class="form-control" id="name">
                       ^^^^^^^^^^^
    

    并对其余的输入执行相同的操作。

    error reporting 添加到文件顶部,这将有助于查找错误。

    <?php 
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // Then the rest of your code
    

    旁注:显示错误应该只在暂存阶段完成,而不是在生产阶段。


    脚注:

    如果您使用的是 JS/Ajax 而不是您发布的,并且我怀疑您是,那么请使用您真正使用的代码编辑您的问题。

    • 问题很可能就在那里,因此请检查您的 (JS) 控制台。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-21
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多