Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过PHP通过电子邮件发送textarea HTML代码以显示为HTML_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 通过PHP通过电子邮件发送textarea HTML代码以显示为HTML

Javascript 通过PHP通过电子邮件发送textarea HTML代码以显示为HTML,javascript,php,jquery,html,Javascript,Php,Jquery,Html,目前,我有一个完整的工作电子邮件系统,我想实现我的summernote。然而,当我提交表单时,它似乎是以文本形式作为html代码发送的,因此它显示了所有内容,并且没有特殊的格式。所以我想。它是否正确地发送到脚本,因此我将其回显,它显示了没有格式的代码 发送: <?php require '../settings.php'; /* Check all form inputs using check_input function */ $name= check_input($_POST['na

目前,我有一个完整的工作电子邮件系统,我想实现我的summernote。然而,当我提交表单时,它似乎是以文本形式作为html代码发送的,因此它显示了所有内容,并且没有特殊的格式。所以我想。它是否正确地发送到脚本,因此我将其回显,它显示了没有格式的代码

发送:

<?php require '../settings.php';
/* Check all form inputs using check_input function */
$name= check_input($_POST['name'], "Enter your name");
$email= check_input($_POST['email']);
$message= $_POST['message'];
$subject= check_input($_POST['subject']);
/* From who and Reply to Who. */
$headers = 'From: '.$name.'\r\n';
$headers .= 'Reply-To: '.$administrationemail.'\r\n';
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
/* Send the message using mail() function */
mail($email, $subject, $message, $headers);
/* Redirect visitor to the thank you page */
header('Location: /mail/');
exit();
}
?>

您可能需要调整您的标题,为了参数起见,我们将使用与PHP文档中相同的方法

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

您的\r\n必须在双引号内,因为单引号用于文字字符串。

您的脚本按预期工作,如果您想发送具有特殊格式的电子邮件文本,您必须用转义字符替换HTML标记(例如

/n
)。您可以使用
str\u replace

$htmlTags = array('<br />', '<br/>');
$escapeCharacter = '/n';
$final_message = str_replace($htmlTags, $escapeCharacter, $message);
$htmlTags=array('
','
'); $escapeCharacter='/n'; $final_message=str_replace($htmlTags、$escapeCharacter、$message);
如果需要灵活性,请使用PHPMailer。太好了。查看他们的网站:


您是否可以显示该文件的回显输出?您是否可以复制并粘贴提交时发送的内容?这可能有助于深入了解问题的起因。好的@DaMightyOptiq这是我要发送的内容。添加到问题中。@GHOST93将其添加到问题中check_输入的作用是什么?不,抱歉。我仍然以html格式接收电子邮件。您的检查输入功能做什么?暂时尝试$message=$\u POST['message']以查看是否是它导致了问题。如果我删除它,它仍会显示内容。它所做的只是检查是否有粗鲁的词语并删除它们,然后显示****instead@LaughingQuoll你能用你正在使用的编辑过的代码更新你的问题吗?我不想用那样的大项目。你到底想在哪里看到格式化的文本?某些邮件客户端(如MS Outlook)或您的邮箱(如hotmail)?如果是这样的话,请确保将其设置为显示HTML/RTF而不是纯文本。我看不出您的代码有任何问题。另外,您可能必须使用
n2br(htmlspecialchars($message))对
$message
进行编码
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = preg_replace($wordlist, '****', $data);
if ($problem && strlen($data) == 0)
{
    show_error($problem);
}
return $data;
}
$headers  = 'From: ' . $name . "\r\n";
$headers .= 'Reply-To: ' . $administrationemail . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$htmlTags = array('<br />', '<br/>');
$escapeCharacter = '/n';
$final_message = str_replace($htmlTags, $escapeCharacter, $message);