0

これまでにこの問題が発生したことはありませんが、他の誰かが問題を抱えていることを願っています。私のページで動作しない PHP メール スクリプトがあります。テキスト ボックスにテキストを入力することさえできません。オプションの 1 つは選択であり、ドロップダウンを機能させることさえできません。全体は完全に編集できません。

まったく同じコードを取得して、必要最小限の HTML ファイルに入れると、すべてが機能します。メールが正しく送信され、すべてが正しく送信されます。

したがって、明らかに、私の Web ページまたは CSS ファイルのいずれかに、HTML フォームを完全に無効にして役に立たなくするものがあります。

フォームコードは次のとおりです。

<form action="contact.php" method="post">
    <table>
        <tr>
            <td><b>Your Name:</b></td>
            <td> <input type="text" name="yourname" /></td>
        </tr>
        <tr>
            <td><b>Subject:</b> </td>
            <td><select name="subject" />
                <option value=""> -- Please select -- </option>
                <option>Prayer Requests</option>
                <option>Praise Report</option>
                <option>General Feedback</option>
            </select></td>
        </tr>
        <tr>
            <td><b>E-mail:</b> </td>
            <td><input type="text" name="email" /></td>
        </tr>
        <tr>
            <td><b>Your comments:</b></td>
            <td><textarea name="comments" rows="10" cols="40"></textarea><td></tr></td>
        <tr>
            <td><input type="submit" value="Send it!"></td>
        </tr>
    </table>
</form>

phpスクリプトは次のとおりです。

<?php
/* Set e-mail recipient */
$myemail  = "feedback@the-ecclesia.org";

/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject  = check_input($_POST['subject'], "Write a subject");
$email    = check_input($_POST['email']);
$website  = check_input($_POST['website']);
$likeit   = check_input($_POST['likeit']);
$comments = check_input($_POST['comments'], "Write your comments");

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
    show_error("E-mail address not valid");
}

/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
    $website = '';
}

/* Let's prepare the message for the e-mail */
$message = "Hello!

Your contact form has been submitted by:

Name: $yourname
E-mail: $email
URL: $website

Comments:
$comments

End of message
";

/* Send the message using mail() function */
mail($myemail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();

/* Functions we used */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
    return $data;
}

function show_error($myError)
{
?>

<html>
    <body>
        <b>Please correct the following error:</b><br />
        <?php echo $myError; ?>
    </body>
</html>

<?php
exit();
}
?>

必要に応じて CSS を投稿できます。メールフォームがこれを行っていることを聞いたことがありますか?

役立つ場合は、ページへのリンクを次に示します。

これは、フォームが正常に動作する基本的なページです: 動作中のテスト ページ

これは、私が動作させようとしている私の連絡先ページですが、動作しません

木曜日の夜からずっとこの壁にぶち当たっていて頭が痛いので、この時点で何か情報をいただければ幸いです... 笑

4

2 に答える 2

3

あなたはあなたのコンテナからフロートを取り除く必要があります...

.container {
  width: 980px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  clear: both;
}

最新のブラウザには、HTMLとCSSで何が起こっているかを検査できるツールが組み込まれています。Chromeでは、[表示]>[開発者]>[開発者ツール]です。FirebugはFirefoxの優れたプラグインであり、OperaにはDragonflyがあります。これらのツールを使用すると、問題を見つけるのに3秒かかります(下部のコンテナーがフォームを妨害していました)。この情報を使用すると、レンダリングの問題を簡単に解決できます。

于 2012-09-23T02:23:01.147 に答える
0

Adding display: inline-block; to the <div class="container"> makes it editable. So I believe you could say it was uneditable due to CSS... Really don't know why, though.

于 2012-09-23T02:25:39.907 に答える