3

フォームの詳細をメールアドレスに送信するページに連絡先フォームがあります。ここで見ることができます、www.wonder.ie

フォームの HTML は次のとおりです。

<form id="form" name="form27" class="wufoo  page" enctype="multipart/form-data" method="post" action="mailer.php">  
    <ul>
        <li id="foli1">
            <label class="op" id="title1" for="Field1">Name</label>
            <div><input id="Field1" name="name" type="text" class="op required" value="" maxlength="255" tabindex="1" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>  
        </li>

        <li id="foli2">
        <label class="op" id="title2" for="Field2">Email</label>
            <div><input id="Field2" name="email" type="text" class="op required email" value="" maxlength="255" tabindex="2" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>
        </li>

        <li id="foli3">
            <label class="op" id="title3" for="Field3">Inquiry</label>
            <div><textarea id="Field3" name="message" class="op required" rows="10" cols="50" tabindex="3" onkeyup="handleInput(this);" onchange="handleInput(this);"></textarea></div>
        </li>
        </ul>  
        <input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />         
</form>

私のPHPでは、これは次のとおりです。

<?php
if(isset($_POST['submit'])) {
$to = "AN_EMAIL@ADDRESS.COM";
$subject = "Email from Wonder.ie";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];

$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

mail($to, $subject, $body);
} else {
echo "blarg!";
}
?>

すべてが正しいように見えますか? フォーム名が PHP と正しく一致していることはわかっていますが、メールが届かない理由がわかりません。参考までに、サイトの PHP には、AN_EMAIL@ADDRESS.COM ではなく、実際のメール アドレスがあります。送信ボタンを押すと、mailer.php に移動しますが、「blarg!」というエコーが表示されます。私の推測では、メールは送信されていません。

ありがとうございました!

4

9 に答える 9

10

あなたは変わるべきです

if(isset($_POST['submit'])) {

if(isset($_POST['saveForm'])) {
于 2010-02-19T20:30:36.877 に答える
2

変更してみる

if(isset($_POST['submit'])) {

if(isset($_POST['saveForm'])) {

これは、$_POST が型ではなくフォーム入力の名前を探すためです。

于 2010-02-19T20:31:31.973 に答える
2

上記の方法で問題が解決しない場合は、コードをデバッグできるかどうか試してください。

PHP mail() エラーをキャッチし、適切なユーザー エラー メッセージを表示する

于 2013-08-01T16:14:53.650 に答える
0

一部の電子メール サーバーは、適切なヘッダーのない電子メールを受け入れず、何も提供していません。これは私が使用するものです。

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

$header = "From: ".$fromText."\r\n";
$header .= "Cc: ".$ccText."\n";
$header .= "Reply-To : ".$fromText."\r\n";
$header .= "Return-Path : ".$fromText."\r\n";
$header .= "X-Mailer: PHP\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
mail($toText, $subjectText, $msgText, $header, '-f'.$fromText);
于 2013-07-20T22:53:34.940 に答える
0

あなたのhtmlであなたが持っている

<input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />

しかし、php ファイルで をチェックすると$_POST["submit"]、正しくありません。

if(isset($_POST['submit']))に変更する必要がありますif(isset($_POST['saveForm']))

またはif(isset($_POST['submit']))_if(isset($_POST))

于 2013-04-02T08:39:16.173 に答える
0

PHPコード$_POST['submit']では が設定されているかどうかを確認しますが、HTMLコードでは送信ボタンに名前を付けたsaveFormため、行を変更する必要があります

if(isset($_POST['submit'])) {

if(isset($_POST['saveForm'])) {

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

于 2013-04-02T08:23:31.370 に答える
0

あなたの問題は、それがブラーグを注ぐことです。それは間違いなく投稿があなたに届かないことです

コード->

mail($to, $subject, $body);

送信の名前を次のように変更する必要があります

「セーブフォーム」

ところで :)..

試してみた

mail($to, $subject, $body);

あなたのx.phpで、それをアップロードして、件名と本文を正しいものに変更し、送信されれば、メール機能は正常に機能します。

 if(@mail($emailRecipient, $subject, $message, $headers))
    {
      echo "Mail Sent Successfully";
    }else{
      echo "Mail Not Sent";
    }

これは、メール機能が機能するかどうかを確認するために、stackoverflow で見つけた良いコードでもあります。

于 2013-10-21T10:17:07.187 に答える
-1

PHPのHTMLフォームメール送信ガイドhttp://top-answers.net/webhost/web-hosting.html

于 2011-12-27T14:32:43.937 に答える