0

私が取り組んでいるウェブサイトに連絡先フォームを設定しようとしています。コードは次のようになります。

<form action="contact.php" method="POST">
           <ul>
        <li>
            <label for="name">Name:</label><br>
            <input type="text" name="name" />
            </li>
            <br>
            <li>
            <label for="email">E-mail:</label><br>
            <input type="email" name="email" />
            </li>
            <br>
            <li>
            <div id="label">Enquiry:</div>
            <select name="interest"><br>
            <option value="Wedding">Wedding</option>
            <option value="Engagement/Couple">Engagement or Couple</option>
            <option value="Portrait">Portrait</option>
            <option value="Family">Family</option>
            <option value="Children">Children</option>
            </select>
            </li>
            <br> 
            <li>
            <label for="message">Message:</label><br>
            <textarea name="message" cols="40" rows="6"></textarea>
            </li>
            <br>
            <li>
            <button class="submit" type="submit" value="Submit">Submit Form</button>
            </li>
       </ul>
</form>

もともと私はフォームアクションを mailto:myemail@example.com として持っていましたが、ユーザーがメールアプリケーションを開くだけでなく、フォームを送信してメールを送信することを明らかに望んでいます。これを行うための PHP スクリプトを作成しようとしていますが、まだ運がありません。おそらく、PHP を見るのはこれが初めてであり、ましてや書き込もうとすることは言うまでもありません。

私は多くの異なる例を見て、助けを求めてPHPマニュアルを掘り下げましたが、何を書いても同じ結果になり、フォームの送信ボタンを押しても受信トレイに何も受信しません。そこで、問題の特定に役立てるために、ある種の障害発見プロセスを開始しました。私は非常に基本的な PHP スクリプトから始めて、それぞれにさらに追加を試み、どこが壊れているかを確認しました。

以下のように、フォーム アクションを php テスト スクリプトに変更することから始めました。

<?php
phpinfo() ;
?>

これは正常に機能し、php 情報ページが正常に表示されました。私のホストがphpをサポートしていて、それがインストールされていることを知っています。これは問題ではありません。次に、フォーム アクションを以下のコードに変更しました。

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?> 
</body>
</html>

また、Hello World パラグラフを表示して、期待どおりに機能しました。この後、私が考えることができる最も基本的なphpメールスクリプトを試みました。これは次のようになりました。

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
mail('myemail@example.com', 'Contact Form', 'This is a test');
?>
</body>
</html>

フォームの送信ボタンを押すと、ブラウザのアドレスバーにphpスクリプトのURLを含む空白のページが表示され、これから電子メールを受信して​​いません。受信箱にもジャンク フォルダにも、どこにもありません。これは非常に単純なスクリプトであるため、最初に 2 つの考え方があります。1 は、非常に基本的な間違いをしているだけであり、php に関する知識が非常に限られていることを考えると、その可能性が高いということです。2 は、もっと複雑なことが起こっているということです。私のホストの php 設定が、私がやろうとしていることに対して正しくないのでしょうか? 知らない。

この質問が非常に長くなってしまったことをお詫び申し上げます。これまでに行ったことをお見せしたかっただけです。私の問題について何か助けていただければ幸いです。ありがとうございます。

4

4 に答える 4

1

または、localhost から実行しています。
または、php.ini ファイルの SMTP 設定が正しく構成されていません

于 2013-11-12T22:00:14.140 に答える
1

考慮すべきことの 1 つは、メールがメール プロバイダーによってブロックされている可能性があることです。私は Heart Internet のホストを持っており、Heart がホストしている Web サイトから AoL アカウントにメールを送信しようとしましたが、メールがまったく表示されません。ただし、Gmail に送信されるメールはすべて送信されます。これは、ウェブサイトがスパムを生成しているため、AoL が Heart からのすべての電子メールをブロックしたためです。

以下に、動作するはずのPHPコードをいくつか入力します。

// Input your desired location instead of email address
$to = 'email address';
$subject = 'Test email';

$message = '<html><body>';
    $message .= '<h1>This is an email.</h1>';
    $message .= '<p>I hope you like it.</p>';
$message .= '</body></html>';

$headers = 'MIME-Version: 1.0\r\n';
$headers .= 'Content-Type: text/html; charset=ISO-8859-1\r\n';

mail($to,$subject,$message,$headers);
于 2013-11-12T21:55:55.763 に答える
-2

フォームの上部を確認すると、<form action="contact.php" method="POST">平均フォーム値が contact.php ファイルに投稿され、フォームのデータを含むメールを送信するためのメール関数が記述されていることが書かれています。のコードを見せてくださいcontact.php

于 2013-11-12T21:47:07.357 に答える