これまでにこの問題が発生したことはありませんが、他の誰かが問題を抱えていることを願っています。私のページで動作しない 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 を投稿できます。メールフォームがこれを行っていることを聞いたことがありますか?
役立つ場合は、ページへのリンクを次に示します。
これは、フォームが正常に動作する基本的なページです: 動作中のテスト ページ
これは、私が動作させようとしている私の連絡先ページですが、動作しません 。
木曜日の夜からずっとこの壁にぶち当たっていて頭が痛いので、この時点で何か情報をいただければ幸いです... 笑