0

私は PHP のプロではありませんが、実際に始めたばかりで、私を助けてくれるかどうか疑問に思っていました。

私は、この連絡フォームに個人名とこのようなメッセージを記載したメールを送信しようとしています.

名前: フレッド ブログ メッセージ: メッセージ、メッセージ。

しかし、メッセージだけを試してみると、名前変数をどこにも挿入できないようです。

これがコードです

<?php 
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$subject = $_REQUEST['subject'] ;

mail( "keiron.lowe@example.com", "Name: $name", "$subject", $message, "From: $email" );
header( "Location:contact.php" );
?>
4

3 に答える 3

2

引数が少し混同しています。

mail( "keiron.lowe@gmail.com", $subject, "Name: $name\nMessage: $message", "From: $email" );

さらに、電子メール アドレスを検証せずに行うべきではありません。"From: $email"これにより、スクリプトがスパムの送信に対して無防備になります。

于 2009-12-08T21:04:52.857 に答える
1

関数に渡すパラメータが多すぎますmail()。次のようなことを試してください:

<?php 
ob_start();
$name = $_POST['name'] ;
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$message = $_POST['message'] ;
$subject = strtr($_POST['subject'],array(':' => ' ', "\r" => ' ', "\n" => ' '));

$message = "Name: {$name}\r\nmessage: {$message}";
mail("redacted@example.com", $subject, $message, "From: {$email}");
header("Location: contact.php", true, 302);
ob_end_clean();
die;
?>
于 2009-12-08T21:03:41.283 に答える
1

mail()のマニュアルを見てください:

mail("keiron.lowe@gmail.com", "Name: $name", $message, "From: $email");

とにかく、PHP の mail() 関数に依存しないことを強くお勧めします。その戻り値は、メールが本当に送信されたかどうかを示していないからです。代わりに、メール送信にはphpmailerを使用してください。

よろしくお願いします、
ファビアン

于 2009-12-08T21:04:08.037 に答える