【问题标题】:Content from Form not sent to webmail表单中的内容未发送到 webmail
【发布时间】:2017-02-14 09:13:56
【问题描述】:

我正在使用 Swiftmailer 创建一个表单。问题是,表单内部没有任何内容,但 PHP 正文出现在电子邮件中。我还看过一些来自 Youtube 和 Google 的教程,尝试过但失败了,还没有任何效果。

HTML

<form id="contactForm" method="POST" action="form-process.php">
            <div class="row">
                <div class="form-group col-md-6">
                    <label class="h4">Your Name</label>
                    <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
                    <div class="help-block"></div>
                </div>
                <div class="form-group col-md-6">
                    <label class="h4">Your Email</label>
                    <input type="text" class="form-control" id="email" placeholder="Enter name" required>
                    <div class="help-block"></div>
                </div>
            </div>
            <div class="form-group">
                    <label class="h4">Your Message</label>
                    <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea>
                    <div class="help-block"></div>
                </div>
                <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button>
        <div id="msgSubmit" class="h3 text-center hidden"></div>
        <div class="clearfix"></div>
        </form>

PHP

<?php

require_once 'swiftmailer-5.x/lib/swift_required.php';

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('mail.mysite.com', 465, 'ssl')
  ->setUsername('mysite@domain.com')
  ->setPassword('password')
  ;

// Get data 

$name=filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$message=filter_var($_POST['message'], FILTER_SANITIZE_STRING);

$data = "Name: " . $name . "<br />" .
        "Email: " . $email . "<br />" .
        "Message: " . $message . "<br />";

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Feedback Form')
  ->setFrom(array('mysite2@domain.com' => 'Feedback Form'))
  ->setTo(array('mysite@domain.com' => 'Feedback Form'))
  ->setBody($data, 'text/html')
  ;

// Send the message
$result = $mailer->send($message);

?>
<p>Thank you for give us your feedback. We will respond to your feedback as soon as possible.</p>
<p>Please click <button type="btn btn-success"><a href="contact.html">Here</a></button> to return to the site.</p>

这是屏幕截图

我做错了什么?帮我。 (以Bootstrap为形式)

【问题讨论】:

  • 发布所有代码,包括 HTML 表单。
  • 同时发布 html
  • 抱歉没有早点发布

标签: php forms swiftmailer


【解决方案1】:

好的,您的表单输入似乎缺少 name 属性。

添加属性,然后您的表单应该可以工作,例如:

<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
<input type="text" class="form-control" id="email" name="email" placeholder="Enter name" required>
<textarea id="message" class="form-control" name="message" rows="5" placeholder="Enter your message" required></textarea>

【讨论】:

    【解决方案2】:

    问题是您必须在输入中添加名称属性。
    所以改为&lt;input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE"&gt;
    您应该使用&lt;input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE"&gt;,以便您的 PHP 脚本可以从 POST 请求附带的数组中获取此值。
    为每个输入添加名称属性,然后您的脚本将在表单提交后获取它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2012-05-10
      • 2013-08-24
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多