同様の質問を探しましたが、特定のケースが見つかりませんでした。
私が持っているフォーム内で PHP Captcha プラグインを使用しています。間違ったキャプチャ エントリと正しいキャプチャ エントリを非常によく似た方法で処理します。ユーザーのフレーズが正しければ、JavaScript の「成功」アラートをスローし、フォームの電子メールを送信してから、最後のページに送り返します。間違っている場合は、javascript の「間違った」アラートをスローし、最後のページに送り返します。
私の問題-それらが正しくない場合は、キャプチャを更新する必要があります。キャプチャエントリが正しくないと、別の試行のために常に画像を更新する必要があるためです。また、それらが正しい場合はフィールドをクリアしたいが、正しい場合にのみクリアし、間違っている場合はフォームデータを保持したい。これどうやってするの?
ここに私のPHPキャプチャコードがあるので、私の試みを見ることができます. HTMLが必要な場合はお知らせください...(また、POSTの前にJSですべてのエントリをチェックしました)
<?php
/*set email*/
$myemail = "email@email.com";
/* Check all form inputs using check_input function */
$name = $_POST['name'];
$companyName = $_POST['companyName'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$TimeForContact = $_POST['TimeForContact'];
$aval = $_POST['aval'];
$messageFromFrom = $_POST['message'];
$firstTime = $_POST['firstTime'];
$subject = "Some Subject";
require_once('recaptcha-php-1.11/recaptchalib.php');
$privatekey = "*someprivatekey*"; //I took this out for the question
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
echo '<script type="text/javascript"> alert ("You have inserted the wrong phrase in the Captcha box. Please try again! Thank you."); window.history.back();</script>';
exit();
} else {
$message = "some message
End of message
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
echo '<script type="text/javascript"> alert ("Success! You have emailed your submission. Please await our response. Thank you."); window.history.back()</script>';
exit();
}
?>
私はもともと次のように、JSを介してページをリロードしようとしました:
window.reload(history.back());
また
window.location.reload(history.go(-1));
どちらか + それに似た複数の組み合わせでは成功しません。
質問を繰り返します:
必要に応じてフォーム/キャプチャを更新するにはどうすればよいですか
また
キャプチャ フォームを送信するための実践的な行動は何ですか?
ありがとうございました。