Я пытаюсь загрузить или получить весь контент из 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, которые автоматически присваивают значения переменных, но это не так, я ошибаюсь. Может кто-нибудь, пожалуйста, помогите мне найти способ для этого.
благодарю вас
Вы должны указать 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
Чтобы решить вашу проблему, вам просто нужно добавить глобальные определения в ваш файл 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>