我正在尝试将一些HTML从文件解析为PHP变量以通过HTML电子邮件发送,但我正在努力。加载时根本不输出任何内容。仅回显提交按钮。我究竟做错了什么?我知道这可能很多,但有人可以告诉我如何让它发挥作用吗?
我最终会使用AJAX作为提交按钮,因此页面不会重新加载,但内容(此刻)甚至都没有显示。这是很多代码,因此我决定将其分解为文件,以便于阅读和注入。
<?php
// Setting mail options
$to = $_POST["clientemail"];
$subject = $_POST["subject"];
// Are we debugging?
$debug = true;
// 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";
// Additional headers
$headers .= 'From: CodexWorld<"postmaster@intel-web.co.uk">' . "\r\n";
$headers .= 'Cc: b.ravetta@gmail.com' . "\r\n";
$headers .= 'Bcc: admin@intel-web.co.uk' . "\r\n";
// Place all HTML content into one big fucking message.
$head = file_get_contents("head.html");
$body = file_get_contents("body.html");
$footnotes = file_get_contents("footer.html");
if($_POST["packageid"] == 1)
{
$content = file_get_contents("fb.html");
}
if($_POST["packageid"] == 2)
{
$content = file_get_contents("aw.html");
}
if($_POST["packageid"] == 3)
{
$content = file_get_contents("mobi.html");
};
$messagecontent =
echo $head;
echo $body;
echo $content;
echo $footnotes;
;
// Where the message content ends.
echo "<form method='POST' action=''>
<input type='submit' name='sendmail' value='Send Email'>
</form>";
if (isset($_POST['sendmail']))
if(mail($to,$subject,$messagecontent,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
// Debug Shit
if ($debug)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting("E_STRICT")
?>
答案 0 :(得分:1)
我很惊讶你甚至得到了一个提交按钮。因为
$messagecontent =
echo $head;
echo $body;
echo $content;
echo $footnotes;
;
实际上应该为意外的T_ECHO引发语法错误。
如果你想连接一个字符串,你就是这样做的:
$messagecontent = $head . $body . $content . $footnotes;
如果您解决了这个问题,您仍然只会在提交表单后收到提交按钮,因为在您发送邮件时,您对成功/错误消息不做任何处理。您可能想要执行类似
的操作if (isset($_POST['sendmail'])) {
if(mail($to,$subject,$messagecontent,$headers)) {
$successMsg = 'Email has sent successfully.';
echo $successMsg;
} else {
$errorMsg = 'Email sending fail.';
echo $errorMsg;
}
}
(注意:我还将if语句的语法更改为可接受的标准。请参阅http://www.php-fig.org/psr/)
此外,您可能希望更改php.ini中的错误报告设置,而不是文件中的错误报告设置。因为如果你确实有一个解析错误,你将看不到它(因为无法解析该文件,所以display_errors
不会被设置为1.