0

ここにある非常に必要最小限のPHPメールフォームをテストしています

<?php

    if(isset($_POST['submit']))

    {

        //The form has been submitted, prep a nice thank you message

        $output = '<h3>Thanks for your message</h3>';


        //Deal with the email

        $to = 'mymail@mail.com';

        $subject = 'you have a mail';



        $contactname = strip_tags($_POST['contactname']);

        $adress = strip_tags($_POST['adress']);

        $contactemail = strip_tags($_POST['contactemail']);

        $textmessage = strip_tags($_POST['textmessage']);



        $boundary =md5(date('r', time())); 



        $headers = "From: My Site\r\nReply-To: webmaster@mysite.com";





        $message = "Name: ".$contactname."\n";

        $message .= "Adress: ".$adress."\n";

        $message .= "E-mail: ".$contactemail."\n";

        $message .= "Message: ".$textmessage."\n";



        mail($to, $subject, $message, $headers);

    }

?>

問題は、メッセージに一重引用符または二重引用符を書くたびに不要なスラッシュ「\」を受信することです。そのため、メールボックスでは「I'm」が「I\'m」と表示されます。

PHP がコードの引用と講義の引用のみを区別する方法に関係していることはわかっていますが、適切に実行するためにフォームに何を追加すればよいかわかりません。

どんな助けでも大歓迎です、

4

2 に答える 2

5

最も簡単な方法は、php.ini でマジック クォートをオフにすることです。

magic_quotes_gpc=false

それができない場合は、次のようにスラッシュを削除する必要があります。

if (get_magic_quotes_gpc()) {
    foreach($_POST as $k => $v) {
       $_POST[$k] = stripslashes($v);
    }
}
于 2010-04-28T01:06:40.333 に答える
3

次のようなメッセージのストリップスラッシュを試すことができます。

$message = stripslashes($message);
于 2010-04-28T01:06:46.030 に答える