2010-08-10 5 views
0

Я пытаюсь написать html почтовый отправитель, но у меня проблема, он показывает слэши.Слэши в 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="[email protected]"> 
     HTML content: <textarea cols="40" rows="5" name="html"></textarea> 
     <input type="submit" value="Send"> 
    </form> 

Когда я печатаю HTML-код в textare и отправить его в Gmail, он показывает странные косые черты. Какую ошибку я здесь делаю?

+0

Я использую UTF-8 – ilhan

ответ

-4

Благодаря конфигурации сервера нет никакой возможности.

+0

Это неверно: 'stripslashes' - это способ (как несколько человек уже ответили) –

+0

это не сработало – ilhan

1

Ваши настройки PHP неправильные, есть такая настройка, как magic_quotes или someting, вы должны отключить это.

+0

Я не могу. Это общедоступный хостинг :( – ilhan

+0

В этом случае вы можете использовать функцию stripslashes для удаления этих слэшей. :-) Для каждой проблемы есть решение ;-) – Ronn0

2

Попробуйте использовать функции php для преобразования html. Их немало. Возможно, вам потребуется кодировать, декодировать.

$html = htmlspecialchars($_REQUEST["html"]); 
+0

Теперь это хуже :(Я не знаю, почему, но это не так – ilhan

+1

Слэши не изменяются с помощью htmlspecialchars(), но могут быть и другие символы. –

6

Похоже Волшебные Котировки включены: http://www.php.net/manual/en/security.magicquotes.php

Либо отключить волшебные кавычки или сделать это:

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

Кроме того, если ваш скрипт использует от и решения от формы представления, вы будете найдены спамерами, которые отправят тысячи писем через ваш сервер, пока вы не заблокируете каждый блокировщик спама в Интернете. Вам нужно заблокировать это.

Любая информация добавить к заголовку почты из представления может быть поставлена ​​под угрозу, увидеть это для получения дополнительной информации: http://www.phpsecure.info/v2/article/MailHeadersInject.en.php

0

эта процедура работает для меня:

$mail_message; //actual email message u want to send. 
$message = str_replace("\\n","<br/>",(stripslashes($mail_message))); 
$message = str_replace("\\r","<br/>",$message); 
0

Я установил это, передавая текст через stripslashes();

Это не (или больше не все равно), вызванное magic_quotes, поскольку это было удалено в PHP 5.4. PHP, кажется, автоматически добавляет косые черты в текст, который поступает из форм HTML, как (возможно?) Мера безопасности.

Смежные вопросы