gpt4 book ai didi

php - 表单不将值传递给 PHPMailer

转载 作者:搜寻专家 更新时间:2023-10-31 21:53:37 26 4
gpt4 key购买 nike

我有一个带有基本联系表的响应式网站。我正在尝试使用我过去使用过的 PHPHMailer。出于某种原因,我的表单中的值没有进入 PHPMailer。我通过在“名称”、“电子邮件”、“主题”和“消息”中放置硬编码值进行测试,并且该表单可以正常工作。我尝试在尝试发送邮件之前使用“isset”来确保它是值(我这样做是因为没有“isset”我得到一个“ undefined index ”错误,它告诉我没有值。这段代码在我的没有响应但没有响应的基本形式。我很难过。欢迎任何建议。这是我的 html 和 PHP 代码。谢谢!*我已经更新了代码,因为我已经将问题缩小到Java 脚本。在 HTML 中,“form id="main-contact-form"触发以下 js 代码

var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('<div class="form_status"></div>');
$.ajax({
url: $(this).attr('action'),
beforeSend: function(){
form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
}
}).done(function(data){
form_status.html('<p class="text-success">Thank you for contact us. As early as possible we will contact you</p>').delay(3000).fadeOut();
});
});

正是这个 js 导致了这个问题。我目前正试图找出原因。感谢之前尝试提供帮助的人。

<form id="main-contact-form" name="contact-form" method="post" action="contact.php">
<div class="row wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
<div class="col-sm-6">
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="Name" required="required">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email Address" required="required">
</div>
</div>
</div>
<div class="form-group">
<input type="text" name="subject" class="form-control" placeholder="Subject" required="required">
</div>
<div class="form-group">
<textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required="required"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn-submit">Send Now</button>
</div>
</form>

还有我的 PHP;

<?php


$email = $_REQUEST['email'];
$name = $_REQUEST['name'];
$message = $_REQUEST['message'];
$subject = $_REQUEST['subject'];

require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();
$mail->Host = 'myhost.com';
$mail->SMTPAuth = true;
$mail->Username = 'me@myemail.com';
$mail->Password = 'mypassword';
$mail->SMTPSecure = 'tls';

$mail->From = $email;
$mail->FromName = $name;
$mail->addAddress('me@myemail.com');

$mail->addReplyTo($email);

$mail->WordWrap = 50;
$mail->isHTML(true);

$mail->Subject = $subject;
$mail->Body = $message;

if(!$mail->send()) {

echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;

exit;
}

echo 'Message has been sent';

?>

最佳答案

在你的代码中检查你在提交按钮中缺少这个名字

<button type="submit" class="btn-submit" name='submit'>Send Now</button>

并替换这个

    $email = $_POST['email'];
$name = $_POST['name'];
$message = $_POST['message'];
$subject = $_POST['subject'];

有了这个

    $email = $_REQUEST['email'];
$name = $_REQUEST['name'];
$message = $_REQUEST['message'];
$subject = $_REQUEST['subject'];

关于php - 表单不将值传递给 PHPMailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com