代码之家  ›  专栏  ›  技术社区  ›  ilhan

HTML邮件中的斜线?

  •  0
  • ilhan  · 技术社区  · 14 年前

    我试图写一个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> 
    

    当我输入一个HTML代码到textare并发送到gmail时,它会显示奇怪的斜线。我在这里犯了什么错误?

    6 回复  |  直到 8 年前
        1
  •  6
  •   Scott Saunders    14 年前

    听起来好像启用了魔法引号: http://www.php.net/manual/en/security.magicquotes.php

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

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

    此外,如果您的脚本使用表单提交中的“发件人”和“收件人”地址,垃圾邮件发送者将通过您的服务器发送数千封电子邮件,直到您被Internet上的每个垃圾邮件阻止程序阻止。你得把它锁起来。

    您从提交中添加到邮件头的任何信息都可能受到损害,有关详细信息,请参阅此部分: http://www.phpsecure.info/v2/article/MailHeadersInject.en.php

        2
  •  2
  •   Codex73    14 年前

    尝试使用PHP函数转换HTML。有很多。你可能需要编码,解码。

    $html = htmlspecialchars($_REQUEST["html"]);
    
        3
  •  1
  •   Ronn0    14 年前

    你的PHP设置错误,有一个设置 魔术引文 或者其他的,你必须禁用它。

        4
  •  0
  •   Irfan Muslim    13 年前

    这个程序对我很有用:

    $mail_message; //actual email message u want to send.
    $message = str_replace("\\n","<br/>",(stripslashes($mail_message)));
    $message = str_replace("\\r","<br/>",$message);
    
        5
  •  0
  •   Stephen R    8 年前

    我通过将文本通过stripslashes()来修复这个问题;

    它不是(或者不再是)由magic_引号引起的,正如php 5.4中删除的那样。PHP似乎会自动向HTML表单中的文本添加斜杠,例如(可能是?)安全措施。

        6
  •  -4
  •   ilhan    14 年前

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