1

お問い合わせフォームがメールに送信されるCKEditorを作成するために使用しています。 問題は、そのフォームを電子メールで送信しても値が受信されないことです。html mailer

電子メールでのお問い合わせフォーム (コード)

<form action="http://techindiainfotech.com/mail.php" method="post" name="test">
    <p>Your Name: <input maxlength="75" name="name" size="75" type="text" /></p>

    <p>Mobile Number: <input maxlength="10" name="mobile" size="10" type="text" /></p>

    <p>Business Name: <input maxlength="100" name="business" size="100" type="text" /></p>

    <p><input name="sub" type="submit" value="Submit" /></p>
</form>

ハンドラ - mail.php

if ($_POST['sub'] != '') {
    unset($_POST['sub']);
    echo "Details received:<br>";
    foreach ($_POST as $val) {
        echo "$val<br>";
    }
} else {
    header("Location: http://www.techindiainfotech.com/files/contact_us.php");
    exit();
}

Gmail のメッセージ テキストのスクリーンショットが文字化けしている

メッセージの文字化け

4

3 に答える 3

2
if ($_POST['sub'] != '') {
    unset($_POST['sub']);

上記のコードは$_POST['sub']、 が空の文字列でない場合、以下のステートメントを評価することを意味します。

フォームが送信されなかった場合、$_POST['sub'];未定義になり、PHP は というエラーをスローしますUndefined index

isset()代わりに、フォームが送信されたかどうかを適切に確認するために使用します。

if (isset($_POST['sub'])) {
    # code ...
}

以下が機能するはずです。

if (isset($_POST['sub'])) 
{
    unset($_POST['sub']);
    echo "Details received:<br>";
    foreach ($_POST as $val) 
    {
        echo "$val<br>";
    }
}
于 2013-09-26T13:54:59.467 に答える
1

あなたのフォームは非常にシンプルで$_POSTループであるため、エラーの原因を絞り込むことができます。

  • ファイルベース: スクリプトが期待するフォルダーにありません
  • CKEditor は、HTML を削除するか、... HTML ソースコードを調べて、HTML をスローします。
  • mail.phpprint_r($_POST);の先頭で使用
  • PHP デバッグ / エラー報告を有効にする: http://blog.flowl.info/2013/enable-display-php-errors/
  • サンプル コードに表示されない JavaScript がある場合は、さらにテストするために削除してください

アップデート:

  • CKEditor は、属性によってラベル付けされなくなった方法で入力を変更するnameか、フォームを他の無効なフォームでレンダリングします (それが問題だとは思わないでください)。

サンプル コードをウェブサーバーにコピーしましたが、動作しています。上記のコードに表示されていないものが実際のコードに含まれている可能性があります。

于 2013-09-26T14:23:10.150 に答える