我有一个表单,可以捕获并转发用户的姓名、电子邮件和评论。
我的收件箱中收到了电子邮件,但其值为空。
收到的电子邮件示例:
Name:
Email:
Comment:
这是我的index.php 文件中的代码
<?php
$name="";
$from="";
$message="";
if(isset($_POST['submit'])){
$name=mysql_real_escape_string($_POST['name']);
$from=mysql_real_escape_string($_POST['email']);
$message=mysql_real_escape_string($_POST['comments']);
$to="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3a5f575b53567a5f425b574a5f5614595557" rel="noreferrer noopener nofollow">[email protected]</a>";
include("library/send_email.php");
}
?>
<form id="contactform" name="contactform" action="" method="post">
<input type="text" id="name" placeholder="Name" name="name" value="<?php echo $name;?>" required>
<input type="text" id="email" placeholder="Email" name="email" value="<?php echo $from;?>" required>
<textarea id="comments" name="comments" placeholder="Message" required><?php echo $message;?></textarea>
<button name="submit" id="submit" class="contact-btn-submit" type="submit">Send</button>
</form>
还有一个 send_email.php 文件,其中包含以下内容:
<?php
$send_email= new class_email_sender($name,$from,$to,$message);
$send_email->send_email();
?>
为什么电子邮件不包含用户的姓名、电子邮件或评论?
最佳答案
这个:
$name=mysql_real_escape_string($_POST['name']);
$from=mysql_real_escape_string($_POST['email']);
$message=mysql_real_escape_string($_POST['comments']);
由于您没有有效的mysql_*
连接,mysql_real_escape_string
返回false
,因此您的所有值都是false
code> 当您发送邮件时会产生空字符串。
注意,除了准备要插入数据库的数据之外,您不应该使用此函数进行任何其他操作,即使如此,您也应该切换到 PDO 或 mysqli 并准备好语句作为 mysql_*
函数已弃用并已从 php 7 中删除。
关于php - 为什么我收到的邮件没有任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413043/