-1

これが私の連絡先フォームです。ページの下部にあるbenlevywebdesign.comで確認できます。

<form id="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="text/plain" method="get">    

        <fieldset>
            <p class="form">
                <label for="name">Name</label>
                <input type="text" name="name" id="name" size="30" />
            </p>
            <p class="form">
                <label for="email">Email</label>
                <input type="text" name="email" id="email" size="30" />
            </p>
            <p class="form">
                <label for="web">Website</label>
                <input type="text" name="web" id="web" size="30" />
            </p>            
        </fieldset>
        <fieldset>                                                                          
            <p class="form">
                <label for="message">Message</label>
                <textarea name="message" id="message" cols="30" rows="10"></textarea>
            </p>                                
        </fieldset>                 

        <p class="submit"><button name="submit" type="submit">Send</button></p>

    </form>`

get から post に切り替えようとしている php コードを次に示します。PHPはそこまでわからない

<?php
        if(isset($_GET['submit'])){

            $to = "benlevygraphics@gmail.com";
            $headers = "From: " . $_GET['email'];
            $subject = "Ben, you have been contacted by...";
            $body = "Name: " . $_GET['name'] . "\nEmail: " . $_GET['email'] . "\nWebsite: " . $_GET['web'] . "\nMessage: " . $_GET['message'];
            if(mail($to, $subject, $body, $headers)){
                echo("<p>Your message has been sent!</p>");
            }
            else{
               echo("<p>Message delivery failed...</p>");
            }
       }

?>
4

2 に答える 2

4

まず、enctype属性を削除します。あなたはそれをtext/plain仕様が言うところまで設定しています:

テキスト/プレーン形式を使用したペイロードは、人間が読める形式にすることを目的としています。それらはコンピュータによって確実に解釈可能ではありません

次にmethod"POST"

第三に、PHPでは使用し$_POSTない$_GET

第4に、最初に。でエンコードせずに、コンテンツを$_POST/GET/SERVER/ETCHTMLドキュメントに出力しないでくださいhtmlspecialchars。そうしないと、XSSのセキュリティに大きな脆弱性が生じます。

于 2012-05-29T15:37:21.833 に答える
0

変更してみてください:

<p class="submit"><button name="submit" type="submit">Send</button></p>

<p class="submit"><input type="submit" name="submit" id="submit" value="Send" /></p>
于 2012-05-29T15:28:42.303 に答える