-1

HTML/PHP、シンプル、名前、件名、コメントのフォームがあり、ヤフーメールに送信されます.2つの問題があります.コメントのテキストエリアは、誰かが改行(入力)するとHTMLタグも送信します.それを削除する方法メールを受信するときに件名にサーバー/ホスト名が含まれています。ホスト名の代わりに、サイトの名前などの普遍的な件名を作成する方法はありますか?

if(!isset($_POST['submit']))
{
$ToEmail = 'wired@yahoo.com';
$EmailSubject = 'Pitanje sa site.com';
$mailheader = "From :". $_POST["email"]. "\r\n";
$mailheader .= "Reply to :". $_POST["email"]. "\r\n";
$mailheader .= "Ova poruka sadrzi pitanje postavljeno na www.site.com \r\n";
$MESSAGE_BODY = "Ime : " .$_POST["name"]." \r\n";
$MESSAGE_BODY .= "Email : " .nl2br($_POST["email"])." \r\n";
$MESSAGE_BODY .= "Naslov : " .$_POST["subject"]." \r\n";
$MESSAGE_BODY .= "Poruka : " .nl2br($_POST["feedback"])." \r\n";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
echo "Vaša poruka je uspješno poslana! Kliknite <a href=\"index.html\">ovde</a> za početnu stranu ";
};
4

3 に答える 3

3

OK、私はあなたの質問を本当に理解していませんでした、しかしここにそれは行きます...

1)HTMLタグを削除しますか?もしそうなら、strip_tags()関数を使用してください

2)ヘッダーを送信する必要があります。たとえば、mail()関数を使用している場合は、次のようなことを行う必要があります。

$to = 'destination@example.com';
$subject = 'Subject';
$message = 'Your Message';
$headers = 'From: Your Name <email@example.com>';
mail($to, $subject, $message, $headers);
于 2013-03-06T15:01:16.770 に答える
0

テキストエリアを正しくフォーマットするには、「nl2br」を使用できると思います。

さらに、ヘッダーについては、希望どおりにフォーマットできます。「From」を含むヘッダーを使用する場合は、サーバーの名前が削除されます。

$headers = 'From: Me <me@example.com>' . "\r\n";

それから

mail($to, $subject, $message, $headers);
于 2013-03-06T15:04:08.430 に答える
0

次のようなフォームからメールを送信できます。

$to = "email@host.com";
$subject = "Your subject here";
$body = "The comment values here";
if (mail($to, $subject, $body)) {
    echo("<p>Message successfully sent!</p>");
} else {
    echo("<p>Message delivery failed...</p>");
}

html の新しい行を削除するには、関数を使用できますstr_replace("<br/>","\n", $body);

または正規表現を使用するより良い方法

$body = preg_replace("/<br */?>/","\n",$body); 
于 2013-03-06T15:02:29.473 に答える