0

私は連絡先フォームを含む 1 ページのポートフォリオを持っています。この問題のトラブルシューティングを試みましたが、うまくいきませんでした。私はPHPの専門家ではないので、できる限り説明します。基本的に私が持っているのは、過去に使用したワードプレスの連絡先テンプレート ファイルですが、(可能であれば) ポートフォリオに実装したいです。私の主な問題は、ブラウザでサイトをプレビューすると、フォームにある PHP コードが表示されることです。

<?php
            if ($_SERVER['REQUEST_METHOD'] == "POST") {
                // Check fields for errors

                if (empty($_POST["txtName"])) {
                    $errors["txtName"] = "Please enter your name.";
                }

                if (empty($_POST["txtPhone"])) {
                    $errors["txtPhone"] = "Please enter your phone number.";
                }


                if (empty($_POST["txtEmail"])) {
                    $errors["txtEmail"] = "Please enter your email address.";
                } else {
                    if (!eregi('^[[:alnum:]][a-z0-9_\.\-]*@[a-z0-9\.\-]+\.[a-z]{2,4}$', stripslashes(trim($_POST["txtEmail"])))) {
                        $errors["txtEmail"] = "Please provide a valid email address.";
                    }

                }

                if (count($errors) < 1) {

                        $to = "test-email@gmail.com";
                        $subject = 'Bave Designs Contact';
                        $headers = "From:" . $_POST["txtEmail"] . "\r\n";
                        $headers .= "MIME-Version: 1.0\r\n";
                        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
                        $message = '<html><body style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">';
                        $message .= '<p><strong>Name:</strong> ' . $_POST["txtName"] . '<br />

                                    <strong>Phone:</strong> ' . $_POST["txtPhone"] . '<br />
                                    <strong>Email:</strong> ' . $_POST["txtEmail"] . '<br />

                                    <strong>Message:</strong><br />' . $_POST["txtComment"] . '</p>
                                    </body>
                                    </html>';
                        if ( !mail($to,$subject,$message,$headers) ) {

                            $errors["send"] = "There was a problem sending your message.  Please try again.";
                        }

                } 
            }
            <div id="contact-form">
                    <?php
                if (count($errors) > 0) {
                    echo '<ul style="color:red; padding:0 0 18px 22px;">';
                    foreach ($errors as $error) {
                        echo "<li>" . $error . "</li>";
                    }
                    echo "</ul>";
                }
                ?>
                <?php if ($_SERVER['REQUEST_METHOD'] == "POST" && count($errors) < 1) { ?>
            <p class="success-message"><?php _e('Thank you! Your message has been sent.'); ?></p>
            <?php } else { ?>

            <form id="contact1" method="post" action="#message" class="contact-form">
                <p><label for="txtName">Name</label>
                <input type="text" id="txtName" name="txtName" class="field" size="40" value="<?php echo $_POST['txtName'] ?>" /></p>

                <p><label for="txtPhone">Phone</label>
                <input type="text" id="txtPhone" name="txtPhone" class="field" size="40" value="<?php echo $_POST['txtPhone'] ?>" /></p>

                <p><label for="txtEmail">Email</label>
                <input type="text" id="txtEmail" name="txtEmail" class="field" size="40" value="<?php echo $_POST['txtEmail'] ?>" /></p>

                <p><label for="txtComment">Message</label>
                <textarea name="txtComment" id="txtComment" class="field" cols="40" rows="10"><?php echo $_POST['txtComment'] ?></textarea></p>

                <p><input type="submit" id="btnSubmit" name="btnSubmit" class="button" value="Submit" /></p>

            </form>
            <?php } ?>
        </div><!-- CONTACT FORM ENDS-->

正しいことがわかっているwp_mail機能に切り替えました。mail

どんな助けでも大歓迎です。

前もって感謝します。

4

1 に答える 1

0

私の主な問題は、ブラウザでサイトをプレビューすると、フォームにある PHP コードが表示されることです。

それで、私の理解が正しければ、あなたの PHP コードはあなたのページに表示されていますか?

その場合は、Apache の構成に大きな問題があるように思われるため、できるだけ早く Web ホスティング プロバイダーに連絡することをお勧めします。

于 2013-06-22T21:34:10.273 に答える