Php 发送空白电子邮件的内容表单

Php 发送空白电子邮件的内容表单,php,Php,我创建了一个联系人表单。当我填写所有内容并单击提交,然后在gmail上查看我的电子邮件时。所有部分都是空白的。 我收到的示例: Name: Email: Subject: Message: 以下是我的html代码: <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">

我创建了一个联系人表单。当我填写所有内容并单击提交,然后在gmail上查看我的电子邮件时。所有部分都是空白的。 我收到的示例:

Name:
Email:
Subject:
Message:
以下是我的html代码:

        <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
            <div class="row">
                <div class="col-sm-5">
                    <div class="form-group">
                        <input type="text" name="FirstName" id="FirstName" class="form-control" required="required" placeholder="First Name">
                    </div>
                    <div class="form-group">
                        <input type="text" name="LastName" id="LastName" class="form-control" required="required" placeholder="Last Name">
                    </div>
                    <div class="form-group">
                        <input type="text" name="Emailaddress" id="Emailaddress" class="form-control" required="required" placeholder="Email address">
                    </div>
                    <div class="form-group">
                        <button type="submit" class="btn btn-primary btn-lg">Send Message</button>
                    </div>
                </div>
                <div class="col-sm-7">
                    <textarea name="Message" id="Message" required="required" class="form-control" rows="8" placeholder="Message"></textarea>
                </div>
            </div>
        </form>

发送消息
以下是我的php代码:

header('Content-type:application/json');
$status=array(
'type'=>'success',
'消息'=>'已发送电子邮件!'
);
$FirstName=修剪(条纹斜杠($_POST['FirstName']);
echo“找到名字:”$名字;
$LastName=trim(带斜杠($_POST['LastName']);
echo“找到姓氏:”$姓氏;
$Emailaddress=trim(斜杠($_POST['Emailaddress']);
echo“找到电子邮件地址:”$电邮地址;
$subject='这就是主题';
echo“找到主题:”$主题;
$Message=trim(带斜杠($_POST['Message']);
回声“信息:”$消息
$email_from=$Emailaddress;
$email\u发送至karolburatynski@gmail.com';
$body='Name:'$名字。“\n\n”。”电邮:‘$电子邮件地址。“\n\n”。”主题:‘$主题。“\n\n”。”消息:'$消息
$success=@mail($email_to,$subject,$body,'From:');
echo json_编码($status);
死亡

您的编码有问题,这里是解决方案:

<?php
//print_r($_POST); die; 
//uncomment it if you would liketo do debug

    $FirstName = trim(stripslashes($_POST['FirstName']));
    $LastName = trim(stripslashes($_POST['LastName'])); 
    $Emailaddress = trim(stripslashes($_POST['Emailaddress'])); 
    $subject = 'This is the subject';
    $Message = trim(stripslashes($_POST['Message']));


    $email_from = $Emailaddress;
    $email_to = 'karolburatynski@gmail.com';

    $body = 'Name: ' . $FirstName . "\n\n" . 'Email: ' . $Emailaddress . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $Message;

    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
  ob_end_flush();

   header('Content-type: application/json');
    $status = array(
        'type'=>'success',
        'message'=>'Email sent!'
    );
    echo json_encode($status);
    die;

查找处理联系人表单的javascript并替换此行:

$.post($(this).attr('action'), function(data) {
$.post($(this).attr('action'), function(data) {
对于这一个:

$.post($(this).attr('action'),$(this).serialize(), function(data) {
$.post($(this).attr('action'),$(this).serialize(), function(data) {

查找处理联系人表单的javascript并替换此行:

$.post($(this).attr('action'), function(data) {
$.post($(this).attr('action'), function(data) {
对于这一个:

$.post($(this).attr('action'),$(this).serialize(), function(data) {
$.post($(this).attr('action'),$(this).serialize(), function(data) {

“更改这行代码后,mailer将工作

首先要做的是删除mail()调用中的错误抑制
@
。检查
var\u dump($\u POST)
。如果其中没有值,请检查Chrome Developer Tools(或类似工具)中的“网络”面板。”。如果您在DevTools中看到值而在POST中看不到它们,请检查$\u POST是否在代码中的某个位置被覆盖。我在localhost上检查了我这边的代码,var\u dump和$status都没有显示任何关于空白数据的问题。我认为问题出在@mail上。正如@j08691建议您尝试从mail me中删除
@
您的解决方案将输出“已发送的标题”“警告,因为
标题之前的
回声
。”。或者,如果“全局输出缓冲”处于启用状态,则其作用将与写入的
标题
位于第一行.yap时完全相同。我不知道为什么您需要打印文本并在一个地方返回json?我猜
echo
只是为了调试-这样生成的响应不能作为json解析。但是问题出在别的地方:)非常感谢你的回复,我真的很感激。我更改了代码,但它仍然向我发送空白电子邮件。这就是我收到的:姓名:电子邮件:主题:客户端消息:第一次尝试打印($\u POST);并检查是否有任何可用值。如果没有价值,那么你的形式就有问题了。再次,如果你仍然面临这个问题,请将你的代码粘贴到pastebin并交给我,我会帮你解决。