我试图通过电子邮件发送“textarea”的内容,但这是空白的。怎么解决?
我的PHP代码
good working file picker
我的HTML代码:
<?php
$input = json_decode(file_get_contents("php://input") , true);
$ToEmail = "my-correo@hotmail.com";
$EmailSubject = "CONTACTO ";
$mailheader="Fue enviado por: ".$input['nombre-contacto-2']."\n";
$mailheader .= "From: ".$input['email-contacto-2']."\r\n";
$MESSAGE_BODY.="MENSAJE".$input['msn'];
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die
("Failure");
echo "Saved";
我的JS代码
<form action="" method="post" target="_blank"
onsubmit='event.preventDefault() ;sendForm1("form-contact")'
name="form-contact">
<div class="row">
<div class="col-sm-12">
<label for="comment">Mensaje</label>
<textarea class="form-control" rows="5" id="mensaje"
placeholder="Escribir consulta" name="msn"></textarea>
</div>
</div>
<div id="send-1"></div>
<input type="submit" value="send ">
</form>
我收到的电子邮件只是空白内容,发生了什么?
错误是由textarea造成的吗?
答案 0 :(得分:0)
你必须改变
$ MESSAGE_BODY =&#34; MENSAJE&#34; $ _ POST [&#39; MSN&#39;];
而不是
$ MESSAGE_BODY =&#34; MENSAJE&#34; $输入[&#39; MSN&#39;];
答案 1 :(得分:0)
您可以将变量包装在if语句中,以便检查是否实际填充了字段。
<?php
if( isset($_POST['msn']){
$msn = nl2br(addslashes($_POST['msn'])); //Remove invalid chars by using addslashes
$ToEmail = "my-correo@hotmail.com";
$headers = "From: $from\n";
$msn = "MENSAJE :". $msn;
mail($toEmail, $headers, $msn) or die ("Failure");
请尝试与变量命名保持一致,以避免出错并易于阅读。
有关PHP附加斜线的文档:https://www.php.net/manual/en/function.addslashes.php