表单未通过帖子

时间:2016-04-09 13:27:00

标签: php forms post

我知道这个问题看起来很愚蠢,但我试图解决这个问题很长一段时间。我阅读有关表单不发送数据的主题,但问题的主要原因是名称属性未命中。我真的很困惑,因为在我的情况下事情似乎很简单。我有一个表格:

<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开发的新手。无论如何,我会感激任何建议。 最好的祝福, 帕维尔

1 个答案:

答案 0 :(得分:0)

请注意,您的提交按钮没有任何名称属性。

将其更改为:

<button type="submit" name="submit" class="btn btn-primary pull-right">Send</button>

此外,您可能想要重新检查您的登录信息。您的邮件功能应该在此if(isset(...))之内。否则,即使表单值未保存到数据库,也会向用户发送空白邮件。

希望这有帮助。