将HTML从文件导入PHP变量

时间:2017-08-09 17:15:37

标签: php html

我正在尝试将一些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")
?>

1 个答案:

答案 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.