0

編集:どうやら、メール機能を使用するには、サイトに別のドメインを登録するために料金を支払う必要があります。時間を無駄にして申し訳ありません。コードの修正に感謝します。

私はphpの経験がありません。私はちょうどそれを理解し始めています。入力した情報をメールに送信するフォームを取得しようとしています。else タグを設定しましたが、それだけです。エラーが表示された場合は、お知らせください。私は本当にこれが機能することを望んでいます。自分の目で確かめてください:ウェブサイトコードは次のとおりです。

HTML:

<form action="post_comment.php" method="post" id="commentform">

<label for="comment_author" class="required">Your Name</label>
<input name="name" id="name" tabindex="1" required="required"><br/><br/>

<label for="email" class="required">Your Email</label>
<input type="email" id="email" name="email" id="email" value="" tabindex="2"   required="required"><br/><br/>

<label for="comment" id="comment" class="required">Your Message</label><br/>

<textarea name="comment" rows="10" tabindex="4"  required="required"></textarea><br/>
<input id="submit" name="submit" type="submit" value="Submit Comment" />
<input id="send" name="send" type="hidden" value="1" />

</form>

PHP:

    <?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['comment'];
    $from = 'From: '. $email; 
    $to = 'powersjesse@yahoo.com'; 
    $subject = 'WEBSITE';

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['send'] == "1") { 
        if (mail($to, $subject, $body, $from)) { 
        echo '<p>Your message has been sent!</p>';
    } else { 
        echo '<p>Something went wrong, go back and try again!</p>'; 
    }}
?>

Something went wrong, go back and try again!フォームを送信しようとしているときに 取得します。コードを更新しました。

4

8 に答える 8

3

フィールド「送信」は、フォームを送信するための HTML ボタンであり、フォームには追加されません。表示されない別の入力フィールドを追加します。

<input id="send" name="send" type="hidden" value="1" />

PHP でフィールドにアクセスするには、次のようにします。

if ($_REQUEST['send'] == "1") {

これがお役に立てば幸いです。

于 2012-10-17T12:53:20.540 に答える
3

あなたのコードによると:

   if ($_REQUEST['submit']) {               
        if (mail($to, $subject, $body, $from))
        { 
           echo '<p>Your message has been sent!</p>';
        }
        else
        { 
           echo '<p>Something went wrong, go back and try again!</p>'; 
        }
   }

次の出力を取得します。

エラーが発生しました。戻ってもう一度お試しください。

関数で何か問題が発生したことを意味しmail()、 が返されましfalseた。それ以外の場合は、Your message has been sent!メッセージが表示されます。

この関数の問題は、mail()エラーや警告が表示されず、単に返されることfalseです。

問題を特定する方法

次のように書いてみてください。

    if(mail("your.working.email@gmail.com" , "A subject for example" , "the content of this email","From: no-reply@yourdomain.com"))
     echo "We are good";
    else
     echo "Something not workin";

機能する場合は、変数を宣言した直後に、投稿された変数の値を確認してください。

   echo $name;
   echo $email;
   echo $message;

これらの変数が空でないこと、および$email変数に正当で検証済みの電子メール アドレスが含まれていることを確認してください。

基本的なmail使用法がうまくいかなかった場合は、 php settings( php.ini) に関連するものか、サーバーによる制限です (ホスティング会社に連絡してください)。

EDIT1:あなたの html form について、 のtype属性はorではなく、 であるinput fields必要があります。textnameemail

<input type="email"... 書く代わりに<input type="text"...

于 2012-10-17T13:10:43.150 に答える
1

これを試して

<form action="post_comment.php" method="post" id="commentform">

<label for="comment_author" class="required">Your Name</label>
<input name="name" id="name" tabindex="1" required="required"><br/><br/>

<label for="email" class="required">Your Email</label>
<input type="email" id="email" name="email" id="email" value="" tabindex="2"    required="required"><br/><br/>

<label for="comment" id="comment" class="required">Your Message</label><br/>

<textarea name="comment" rows="10" tabindex="4"  required="required"></textarea><br/>
<input id="submit" name="submit" type="submit" value="Submit Comment" />

とあなたの投稿ページで。

if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
    $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: '. $email; 
$to = 'powersjesse@yahoo.com'; 
$subject = 'WEBSITE';

$body = "From: $name\n E-Mail: $email\n Message:\n $message";


$headers = "From: $from \r\n";
//$headers .= "Reply-To: $visitor_email \r\n";

mail($to, $subject, $body,$headers);
}
于 2012-10-17T12:58:37.530 に答える
1

次のようにフォームを変更してください

<form action="post_comment.php" method="post" id="commentform">

フォームでは、get/post のみを使用できます

于 2012-10-17T12:53:45.063 に答える