-1

簡単なphpフォームメールを作成しようとしています。
後はすべて、ルックスのあるメールです

Name: joe blogs
Email: joe@blogs.co.uk
Message: anything.
Answer 1: Red
Answer 2: green
Answer 3: Blue

以下の例では、メールアドレスを削除しました...問題は、フィールドに入力して送信ボタンを押すと、メッセージが送信されたというメッセージが表示されますが、メールが届かないことです。$questX フィールドを追加するまではすべて正常に機能していましたが、機能しなくなりました。しかし、 $name フィールドに違いはありません。だから私はかなり混乱しています。

<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
 //send email
    $email = $_REQUEST['email'] ;
    $name = $_REQUEST['name'] ;
    $quest = $_REQUEST['quest'] ;
    $questb = $_REQUEST['questb'] ;
    $questc = $_REQUEST['questc'] ;
    $subject = "Competition Entry" ;
    $message = $_REQUEST['message'] ;
    mail("MYEMAIL@HOME.com", $subject, "Name:" . $name, "From:" . $email, "Answer 1:" . 
    $quest, "Answer 2:" . $questb, "Answer 3:" . $questc, $message );
    echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
    echo "<form method='post' action='win-a-deck2.php'>
            <label for='name'>Name:</label><input name='name' type='text'  placeholder='Enter your fullname'><br>
            <label for='email'>Email:</label><input name='email' type='text'><br>
            <label for='message'>Message:</label><br>
            <input name='message' type='text'><br>
            <label for='quest'>Question 1:</label><input name='quest' type='text'  placeholder='Answer to Question 1'><br>
            <label for='questb'>Question 2:</label><input name='questb' type='text'  placeholder='Answer to Question 2'><br>
            <label for='questc'>Question 3:</label><input name='questc' type='text'  placeholder='Answer to Question 3'><br>
            <input type='submit'>
        </form>";  
}  
?>
4

3 に答える 3

0

メール機能:

bool mail ( 
1. string $to ,
2. string $subject , 
3. string $message 
4. [, string $additional_headers 
5. [, string $additional_parameters ]] )

http://www.php.net/manual/en/function.mail.php

次のように使用しています。

mail(
1. "MYEMAIL@HOME.com", 
2. $subject,
3. "Name:" . $name, 
4. "From:" . $email, 
5. "Answer 1:" . 
$quest, "Answer 2:" . $questb, "Answer 3:" . $questc
6. , $message );

確かに、間違ったパラメーターを関数に渡しているため、機能しません。これを試して:

mail(
"MYEMAIL@HOME.com", 
$subject, 
"Name:" . $name . "Answer 1:" . $quest, "Answer 2:" . $questb
. "Answer 3:" . $quest . $message, 
"From:" . $email );
于 2013-06-05T21:30:06.837 に答える
0

まず、質問名が配列になるようにフォームを編集する必要があります。そうすれば、各質問を独自の変数に入力するのではなく、配列として $_POST['questions'] を使用して foreach ループを使用できます。

次に、エラー報告をオンにして、どのようなエラーが発生するかを確認します。

第三に、mail() のパラメータが多すぎ ますhttp://us1.php.net/manual/en/function.mail.phpメッセージ文字列。

于 2013-06-05T21:31:37.103 に答える