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

Magic Quotes が有効になっているようです: http://www.php.net/manual/en/security.magicquotes.php

Magic Quotes を無効にするか、次のようにします。

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

また、スクリプトがフォーム送信の送信元アドレスと送信先アドレスを使用している場合、インターネット上のすべてのスパム ブロッカーによってブロックされるまで、サーバーを介して何千通ものメールを送信するスパム送信者によって検出されます。それをロックダウンする必要があります。

提出物からメール ヘッダーに追加した情報はすべて侵害される可能性があります。詳細については、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やsometingなどの設定があります。これを無効にする必要があります。

于 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(); に渡すことでこれを修正しました。

これは PHP 5.4 で削除されたため、magic_quotes が原因ではありません (または、いずれにせよ)。PHP は、(おそらく?) セキュリティ対策として、HTML フォームからのテキストに自動的にスラッシュを追加するようです。

于 2016-10-19T22:15:35.387 に答える
-4

サーバーの構成により、方法がありません。

于 2010-12-29T00:39:52.690 に答える