表单中的内容未发送到网络邮件
Content from Form not sent to webmail
我正在使用 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作为表格)
好的,您的表单输入似乎缺少名称属性。
添加属性,然后您的表单应该可以工作,例如:
<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>
问题是您必须将名称属性添加到输入中。
所以 <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
您应该使用 <input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
以便您的 PHP 脚本可以从 POST 请求附带的数组中获取此值。
将名称属性添加到每个输入,然后您的脚本将在表单提交后获取它。
我正在使用 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作为表格)
好的,您的表单输入似乎缺少名称属性。
添加属性,然后您的表单应该可以工作,例如:
<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>
问题是您必须将名称属性添加到输入中。
所以 <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
您应该使用 <input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
以便您的 PHP 脚本可以从 POST 请求附带的数组中获取此值。
将名称属性添加到每个输入,然后您的脚本将在表单提交后获取它。