0

我正在尝试编写一个 html 邮件发件人,但我有一个问题,它显示斜线。

我的部分代码:

<?php
$sender = $_REQUEST["sender"];
$to = $_REQUEST["to"];
$html = $_REQUEST["html"];
$send = $_REQUEST["send"];

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

$headers .= 'To: ' . $to . "\r\n";
$headers .= 'From: ' . $sender . "\r\n";

mail($to, $title, $html, $headers);

?>

    <form action="html.php" method="post">
        Sender: <input type="text" name="sender" value="sender@example.com">
        HTML content: <textarea cols="40" rows="5" name="html"></textarea>
        <input type="submit" value="Send">
    </form> 

当我在 textare 中输入 html 代码并将其发送到 gmail 时,它会显示奇怪的斜杠。我在这里犯了什么错误?

4

6 回答 6

6

听起来像魔术报价已启用:http ://www.php.net/manual/en/security.magicquotes.php

禁用魔术引号或执行以下操作:

$html = stripslashes($_REQUEST["html"]);

此外,如果您的脚本使用表单提交中的 from 和 to 地址,垃圾邮件发送者会发现您,他们将通过您的服务器发送数千封电子邮件,直到您被 Internet 上的每个垃圾邮件拦截器阻止。你需要锁定它。

您从提交中添加到邮件标头的任何信息都可能受到损害,有关更多信息,请参见:http ://www.phpsecure.info/v2/article/MailHeadersInject.en.php

于 2010-08-10T14:15:48.163 回答
2

尝试使用php函数转换html。有不少。您可能需要编码、解码。

$html = htmlspecialchars($_REQUEST["html"]);
于 2010-08-10T14:15:12.413 回答
1

你的 PHP 设置是错误的,有一个类似magic_quotes的设置,你必须禁用它。

于 2010-08-10T14:12:03.773 回答
0

这个程序对我有用:

$mail_message; //actual email message u want to send.
$message = str_replace("\\n","<br/>",(stripslashes($mail_message)));
$message = str_replace("\\r","<br/>",$message);
于 2012-06-15T11:05:20.637 回答
0

我通过将文本传递给 stripslashes(); 来解决这个问题;

它不是(或不再是)由 magic_quotes 引起的,因为它在 PHP 5.4 中被删除了。PHP 似乎会自动为来自 HTML 表单的文本添加斜线,作为(也许?)一种安全措施。

于 2016-10-19T22:15:35.387 回答
-4

由于服务器配置,没有办法。

于 2010-12-29T00:39:52.690 回答