Autor Zpráva
PetraPP
Profil
Formulář odešlu a PHP script zpracuje. Nechci ale používat phpmailer kvůli kontaktnímu formuláři. Problém mám pouze při odeslání textu z Textarea. Když udělám odřádkování (enterem), tak v emailu pak dostávám znaky \r\n. Přitom NL2BR() na to nereaguje a to používám k tomu ještě Content-Type: text/html;

// ošetříme
$form_text = $_POST["text"];
$form_text = strip_tags($form_text);
$form_text = htmlspecialchars($form_text);
$form_text = mysql_real_escape_string($form_text);

// Odešleme přes mail()
$to = "info@example.com";
$subject = 'Kontakt z formuláře';
$subject = sprintf('=?UTF-8?B?%s?=',base64_encode($subject)); // podpora diakritiky
$from_jmeno = sprintf('=?UTF-8?B?%s?=',base64_encode($form_jmeno)); // podpora diakritiky

$headers  = 'From: '.$from_jmeno.' <'.$form_email.">\n"; 
$headers .= 'MIME-Version: 1.0'."\n"; 
$headers .= 'Content-Type: text/html; charset=UTF-8'."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$headers .= nl2br($form_text) . "\n";

mail($to, $subject,"", $headers);
Jan Tvrdík
Profil
Nechápu, proč ten mail posíláš jako text/html, když žádné HTML značky nepoužíváš? Když ho pošleš jako text/plain, tak žádné nl2br potřebovat nebudeš.

Navíc to ošetření máš nesmyslné, přečti si něco o escapování.


Až teď jsem pochopil, na co se ptáš. Dělá to funkce mysql_real_escape_string, která tam nemá co dělat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: