html — как загрузить phtml-файл с переменными, назначенными в php-файле

Я пытаюсь загрузить или получить весь контент из phtml в файл php

все работает нормально, за исключением того, что переменные в файле phtml не загружаются со значениями

Вот мой php файл

<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$code = rand(11111,99999);
$emailSubject = 'Email Verification';
$userEmail = '[email protected]';

function loadEmailTemplate($pagelink='') {

$page = 'email-templates/' . $pagelink . '.phtml';
$pageContent = '';

ob_start();
include($page);
$pageContent = ob_get_contents();
ob_end_clean();

return $pageContent;
}

$mailBody = loadEmailTemplate('emailtemplate');

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: [email protected]\r\n"."X-Mailer: php";
mail($userEmail, $emailSubject, $mailBody, $headers);
?>

и мой emailtemplate.phtml

<html>
<body>
<div style="background-color: #bb4e4e; width:80%; color: #fff;">
Thank you for registering <?php echo $firstname; ?>, your verification code is <?php echo $code; ?>.
</div>
</body>
</html>

и мой вывод по электронной почте или, если я эхо $ mailBody является

 Thank you for registering <?php echo $firstname; ?>, your verification code is <?php echo $code; ?>.

но мой вывод должен быть

Thank you for registering John, your verification code is 52256.

это означает, что файл phtml загружается нормально, но я хочу загрузить значения переменных, определенные в файле php, я думал, что мы загружаем содержимое файла phtml после определения переменных php, которые автоматически присваивают значения переменных, но это не так, я ошибаюсь. Может кто-нибудь, пожалуйста, помогите мне найти способ для этого.

благодарю вас

2

Решение

Вы должны указать Apache для обработки этих файлов, как php,

Добавлять:

<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>

К вашему конфигу apache или .htaccess файл

Для получения дополнительной информации, пожалуйста, прочитайте: https://php.net/manual/ro/install.unix.apache2.php

0

Другие решения

Чтобы решить вашу проблему, вам просто нужно добавить глобальные определения в ваш файл phtml.

Вот как должен выглядеть ваш phtml

<?php global $firstname, $lastname; ?>
<html>
<body>
<div style="background-color: #bb4e4e; width:80%; color: #fff;">
Thank you for registering <?php echo $firstname; ?>, your verification code is <?php echo $code; ?>.
</div>
</body>
</html>
0

По вопросам рекламы [email protected]