我有这个send_mail.php文件。我正在尝试回显一些插入表单中的字段,但我不能使用echo函数。我做错了什么?
<?php
$date = $_POST['date'];
$full_name = $_POST['full_name'];
$biz_name = $_POST['biz_name'];
$activity = $_POST['activity'];
$afm = $_POST['afm'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$mobile = $_POST['mobile'];
$address = $_POST['address'];
$city = $_POST['website'];
$email = $_POST['email'];
$discount = $_POST['discount'];
$payment_amount = $_POST['payment_amount'];
$seller_name = $_POST['seller_name'];
$to = $email;
$subject = "Welcome to our site!";
$htmlContent = file_get_contents("email_template.html");
// Set content-type header for sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers = "Content-type: text/html; charset=UTF-8" . "\r\n";
// Send email
if(mail($to,$subject,$htmlContent,$headers)):
$successMsg = 'Mail sending successful.';
else:
$errorMsg = 'Oops! Something went wrong.';
endif;
?>
我的email_template.html看起来像这样:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Welcome to our site</title>
<head/>
<body>
<h1> Welcome <?php echo $full_name; ?> </h1>
...
</body>
</html>
我是网络开发的新手,所以要温柔! :P
答案 0 :(得分:1)
使用符号或特殊名称编辑模板并标记变量,而不是替换真实变量: email_template.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Welcome to our site</title>
<head/>
<body>
<h1> Welcome --full_name-- </h1>
...
</body>
</html>
php:
<?php
$htmlContent = file_get_contents("email_template.html");
$htmlContent = str_replace("--full_name--",$_POST['full_name'],$htmlContent);
答案 1 :(得分:1)
file_get_contents()
不会将文件解析为php。所以一种选择是做这样的事情:
ob_start();
include('email_template.html');
$htmlContent = ob_get_contents();
ob_end_clean();
当您使用include()
时,它假定您正在运行PHP代码。然后我们使用输出缓冲区来捕获内容。
这样所有变量仍然可用,否则你需要设置一个完整的模板引擎,在这种情况下我会使用像Twig这样的现有变量。
答案 2 :(得分:-1)
两个文件是如何连接的?你在用ajax吗?
看,如果您使用的是ajax,只需返回$full_name
,然后使用jquery或javascript打印它。 (我相信你没有这个,但如果你这样做......)
否则,如果你刚发布并重定向到send_mail.php
,只需在同一页面上使用echo,就像:
// Send email
if (mail($to,$subject,$htmlContent,$headers)):
echo = 'Mail sending successful.';
else :
echo = 'Oops! Something went wrong.';
endif ;
我可以向你推荐的第三种方法是使用$_SESSION
在send_mail.php
开始会话时使用:
session_start();
//and declare
$_SESSION["full_name "]= $fullname;
然后,您将为任何页面启用此变量,而此用户位于您的网站上,您只需回应此方式
echo $_SESSION['full_name'];
当你感觉有所改进时,我建议你学习一个php框架,这对你有很大帮助。祝你好运!
答案 3 :(得分:-1)
我刚刚学会了如何像简单的文字一样回答,我的第一个答案是完全“编码”。
好吧,我建议你学习codeigniter,这不是最好的,但这是我认为最简单的,现在最着名的是laravel。
无论如何对初学者来说都不容易,但在开始研究任何框架之前,首先要先了解php和php oo。
See'ya! :)