формы — счетчик PHP продолжает сбрасывать себя

Таким образом, в основном у меня есть форма, которая представляет информацию на мой сайт, где я могу позже одобрить информацию, чтобы перейти на мой сайт или удалить ее.

Я недавно добавил на сайт средство проверки ботов recaptcha, чтобы я мог избежать спамеров и тому подобное, но проблема в том, что у меня процессы и макет страницы отправки в одном файле (submitinfo.php)

Процесс recaptcha автоматически убивает страницу, потому что капча неверна (потому что у них не было возможности набрать ее), поэтому я подумал, что вместо того, чтобы убить страницу, я просто заставлю ее выдать сообщение о том, что капча неверно, но, как указано выше, когда пользователь впервые открывает страницу, у него не было возможности ввести капчу, поэтому сообщение будет отображаться, даже если он еще ничего не ввел.

Я подумал, если я добавлю счетчик, который показывает сообщение, только если счетчик больше 0 и добавляет +1 каждый раз, когда они загружают страницу. Я сделал это, но сообщение не появляется, даже после того, как несколько раз неправильно введена капча, я думаю, что это потому, что счетчик сбрасывается каждый раз, когда я нажимаю кнопку отправки. Вот код, чтобы вы, ребята, могли видеть, что я на самом деле сделал:

$count

settype($count,"integer");

require_once('recaptchalib.php');
$privatekey = "My Private Captcha Key goes here";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
// the stuff above is just the code from the captcha
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
if($count>0){ $errormessage = "block"; //this displays the error message if the counter is greater then 0
}
$count++;

} else{
//here it submits the info

1

Решение

Просто проверьте, что у вас есть $_POST данные, прежде чем проверять капчу. Это должно быть что-то вроде этого:

<?php

if ($_POST) {
// check captcha
if ($captcha_valid) {
// persist submitted form data
// redirect on success
} else {
$error = 'captcha';
}
}

?>
<!-- display form -->
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector