0

私は PHP にあまり詳しくないので、簡単なメール スクリプトを自分のページに実装しようとしました。しかし、何も起こらないようです。私が使用しているサーバーは、PHP を確実にサポートしています。ファイルをアップロードする以外に何かしなければならないことはありますか?

だから私は自分の contact.php を持っていて、そこには < head> セクションに < ?php ?> タグが付いた通常の HTML コードだけがあります。

こんなふうになります:

<?php
    // Ausführen wenn Formular gesendet
    if (isset($_POST["submit"]))
    {

        // Sammeln der Formulardaten
        $an = "MYMAILADRESS@outlook.com";
        $name = $_POST['name'];
        $email = $_POST['email'];
        $betreff = $_POST['betreff'];
        $nachricht = $_POST['nachricht'];

        // Mailheader UTF-8 fähig machen
        $mail_header = 'From:' . $email . "\n";
        $mail_header .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";

        // Nachrichtenlayout erstellen
        $message = "
            Name:       $name\n
            Email:      $email\n
            Nachricht:  $nachricht\n
        ";

        // Verschicken der Mail
        mail($an, $betreff, $message, $mail_header );
    };
?>

もちろん「MYMAILADRESS」は意図的に変更しました。HTML フォームは次のようになります。

<form id="form" action="thank_you.html" method="post">
        <label for="name">Name:</label>
        <input id="name" name="name" type="text" /><br />
        <label for="email">E-Mail: *</label>
        <input id="email" name="email" type="text" /><br />
        <label for="betreff">Betreff:</label>
        <input id="betreff" name="betreff" type="text" /><br />
        <label for="nachricht">Nachricht: *</label>
        <textarea id="nachricht" name="nachricht"></textarea><br />
        <p class="fussnote">* kennzeichnet Pflichtfelder</p>
        <input id="submit" name="submit" type="submit" value="Absenden" />
    </form>

誰かがこれで私を助けることができれば、それは素晴らしいことです! :)

4

3 に答える 3

1

フォームのactionは、おそらくファイルによって解決される URL を指してい.htmlます。PHP をサポートするほとんどの Web サーバーは.html、PHP プロセッサを介してファイルを実行するように構成されていません。.php代わりに拡張子を使用してください。

于 2013-03-29T22:07:40.867 に答える
0

提供したコードは機能するはずですが、潜在的なハッキングにさらされていることに注意してください。

PHP のmail()関数は、受け取った入力をサニタイズしようとはしません。サイトからスパムを送信するために、訪問者がfromライン フィード付きのアドレスを送信したり、追加のメール ヘッダー (CC や BCC など) を追加したりする可能性があります。

入力をサニタイズするのは比較的簡単ですが、それでもmail()関数が使いにくいという問題が残ります。比較的小さな機能に対して多くのコードが必要になります。

このため、サードパーティのメーラー ライブラリを使用することを常にお勧めします。PHP で使用できる優れたものがいくつかあります。私の好みはphpMailerです。この PHP スクリプトをダウンロードし、サイトの一部として含め、それを使用してメールを送信する方法の指示に従います。関数よりもはるかに簡単に使用でき、mail()ハッキングを心配する必要はありません。すべての入力サニタイズ作業を行うためです。

それが役立つことを願っています。

于 2013-03-29T22:05:45.823 に答える
-1

これはあなたの問題、

だから私は自分の contact.php を持っていて、そこには < head> セクションに < ?php ?> タグが付いた通常の HTML コードだけがあります。

PHP コード (inc タグ) を HTML body タグに移動します。

また、フォーム アクションを .php ファイルに変更します。

于 2013-03-29T22:09:12.107 に答える