Вставка тегов HTML в переменную PHP [duplicate]

0

У меня есть следующий код:

function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "First Name: ".'<strong>'.clean_string($cname).'</strong>'."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";

Эта форма затем отправляет мой адрес электронной почты, мне нужна первая строка сообщения:

Имя: Введенное имя

но я получаю:

Имя: <strong> Введенное имя </strong>

Любая идея, почему теги html не поняты?

Большое спасибо

Теги:

3 ответа

3

Вы должны определить свою электронную почту как "HTML":

 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

 // Send...
 mail($to, $subject, $message, $headers);
  • 0
    Есть ли какая-то конкретная причина, по которой вы выбрали iso-8859-1 в качестве кодировки?
  • 0
    Это то, что использует руководство по PHP . Так что это не должно быть плохим выбором.
Показать ещё 3 комментария
0

он дает ошибку, потому что вы используете специальные символы в своей строке. с функцией htmlspecialchars вы можете преобразовать их в html, а затем это не даст никаких проблем. htmlspecialchars выйдут из <и> в вашем случае

больше информации можно найти в документации php http://fi2.php.net/manual/en/function.htmlspecialchars.php

0

Электронная почта по умолчанию отправляется в виде текстовых сообщений.

Чтобы почтовый клиент интерпретировал тело электронной почты как HTML, вам необходимо доставить тело в правильном формате, который указывается в поле Content-Type:

Content-Type: text/html; charset=iso-8859-1

Вы можете вставить это поле в дополнительный параметр заголовков функции PHP mail().

См. Пример № 4 в приведенной выше ссылке о том, как отправить HTML-адрес электронной почты с помощью PHP.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню