Php 发送空白电子邮件的内容表单
我创建了一个联系人表单。当我填写所有内容并单击提交,然后在gmail上查看我的电子邮件时。所有部分都是空白的。 我收到的示例: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">
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并交给我,我会帮你解决。