Doğru ("Ben değilim" "I \ 'm" olarak döner) bir PHP mail formu karakterleri kodlamak

2 Cevap php

Ben bir PHP mail formu, bir çok Barebone tane test ediyorum, found here:

<?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);

    }

?>

Sorun "\" her benim mesajında ​​bir tek veya bir çift tırnak yazmak, bu yüzden "I \ 'm" olarak "ben değilim" posta kutuma görünür istenmeyen bir çizgi alıyorum olduğunu.

Ben PHP sadece ders tırnak gelen kodu tırnak ayıran yolu ile yapmak zorunda biliyorum, ama düzgün çalışan almak için benim formunda eklemek için ne bilemeyiz.

Herhangi bir Yardım takdir,

2 Cevap

Eğer mesaj, gibi bir şey stripslashing deneyebilirsiniz:

$message = stripslashes($message);

Yapılacak en kolay şey, php.ini sihirli tırnak kapatmak için

magic_quotes_gpc = false

Bunu yapamıyorsanız, böyle eğik kaldırmak gerekir,

if (get_magic_quotes_gpc()) {
    foreach($_POST as $k => $v) {
       $_POST[$k] = stripslashes($v);
    }
}