-1

1つを除くすべての変数が私のメールフォームで機能しているようです。私のHTMLページには、選択ボックス、いくつかのテキスト入力、およびメッセージのテキスト領域を含むフォームがあります。メッセージ変数以外のすべてが取得されています。

私はこれらのPHPベースのメールフォームでこれほど上手くいったことはありません。私は通常HTMLmailtoフォームを使用しますが、それらは安全ではなく、かなり初歩的なものです。

よろしくお願いします。ありがとう!

HTML

<form method="post" action="php/contact.php">
            <label for="senderName">name:</label> <input name="senderName" type="text" /><br />
            <label for="senderEmail">email:</label> <input name="senderEmail" type="text" /><br />
            <label for="senderRegarding">subject:</label> 
                <select name="senderRegarding">
                    <option value="start a project">Wish to start a project</option>
                    <option value="request resume password">Request resum&eacute; password</option>
                    <option value="other">Other</option>
                </select><br />
            <label for="senderMessage">message:</label> <textarea name="senderMessage"></textarea><br />
            <input type="submit" name="submit" /> <input type="reset" />
        </form>

PHP

    <?php
if (isset($_POST['submit'])){
     $name = $_POST['senderName'];
     $email = $_POST['senderEmail'];
     $regarding = $_POST['senderRegarding'];
     $message = $_POST['message'];

     $subject = "Contact Form";

     $message = 
     "Name: " . $name . "\r\n" . 
     "Email: " . $email . "\r\n" . 
     "Subject: ". $regarding . "\r\n" .
     "Message: " . $senderMessage;

     $headers = 
     "From: " . $name .  "\r\n" .
     "Reply-To: " . $email . "\r\n" .
     "MIME-Version: 1.0\n" .
     "Content-type: text/plain; charset=iso-8859-1\n";

     $to = "email@address";
};
     mail($to, $subject, $message, $headers);
     header("Location:../index.htm");
?>
4

4 に答える 4

4

コードを見ると、textareaは「senderMessage」と呼ばれ、$_POSTは「message」を探しています。

$_POST['message']を$_POST['senderMessage']に変更すると機能します

既存

$message = $_POST['message'];

への変更

$message = $_POST['senderMessage'];
于 2012-10-29T21:18:49.803 に答える
3

PHPの組み込みmail()関数を使用しないことを強くお勧めします。本当にひどいです。ひどいコードになってしまいます。すべてのヘッダーを手動で作成する必要があります。そしてそれはバグに対して広く開かれています。

代わりに、phpMailerのコピーをダウンロードしてください。

これは、PHPでメールを送信するのを簡単にするクラスです。

require("class.phpmailer.php");
$mail = new PHPMailer();

$mail->From     = $from;
$mail->AddAddress($to);
$mail->Subject  = $subject;
$mail->Body     = $body;
$mail->Send();

もっと簡単に言えば、きっとあなたも同意するでしょう。また、より安全で、操作が簡単で、より機能的です。

于 2012-10-29T21:21:51.987 に答える
2

交換すると思います

 $message = $_POST['message'];

にとって

 $message = $_POST['senderMessage'];

おそらくあなたの問題を解決するでしょう。<textarea name="senderMessage></textarea>または、に変更することもできます<textarea name="message"></textarea>

于 2012-10-29T21:18:59.837 に答える
2

そのはず$message = $_POST['senderMessage'];

于 2012-10-29T21:19:47.820 に答える