我知道这个问题看起来很愚蠢,但我试图解决这个问题很长一段时间。我阅读有关表单不发送数据的主题,但问题的主要原因是名称属性未命中。我真的很困惑,因为在我的情况下事情似乎很简单。我有一个表格:
<h3>Send a message</h3>
<div class="status alert alert-success" style="display: none"></div>
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
<div class="form-group">
<input type="text" name="name" class="form-control" required="required" placeholder="Name">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" required="required" placeholder="Email ID">
</div>
<div class="form-group">
<textarea name="message" id="message" required="required" class="form-control" rows="4" placeholder="Enter your message"></textarea>
</div>
<button type="submit" name="submit_mail" class="btn btn-primary pull-right">Send</button>
</form>
我试图使用php发送电子邮件:
<?php
include 'php/functions.php';
$status = array(
'type'=>'success',
'message'=>'Thank you for contact us. As early as possible we will contact you '
);
$name = @trim(stripslashes($_POST['name']));
$email = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$email_from = $email;
$email_to = 'correct@email.com';//replace with your email
$body = 'Name:' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;
$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
echo json_encode($status);
die;
?>
结果是:电子邮件发送给我,但其内容为空。如果未设置POST,我使用小调试来将名称设置为&#39;没有名称&#39; 。在电子邮件正文中,我得到&#39;名称:无名称;&#39; 问题似乎很简单,但我无法解决它,因为我是Web开发的新手。无论如何,我会感激任何建议。 最好的祝福, 帕维尔
答案 0 :(得分:0)
请注意,您的提交按钮没有任何名称属性。
将其更改为:
<button type="submit" name="submit" class="btn btn-primary pull-right">Send</button>
此外,您可能想要重新检查您的登录信息。您的邮件功能应该在此if(isset(...))之内。否则,即使表单值未保存到数据库,也会向用户发送空白邮件。
希望这有帮助。