Re: Привет, нужна помощь с кодом капчи.

  • Автор темы synzilla
  • 25
  • Обновлено
  • 13, May 2024
  • #1
Мне нужна помощь с этим кодом Captcha. когда я пробую это, все, что я получаю, это код, начиная с "captcha_varname='$captcha_var_name';" через "?>" Как будто мой Php не работал, но я подтвердил, что это так.

я надеюсь кто-нибудь скажет мне, почему.

Ниже приведен мой код, скопированный из сети:

// простой-captcha.php

класс FGSimpleCaptcha расширяет FG_CaptchaHandler;

{

вар $error_str;

вар $captcha_varname;

вар $uniquekey;

функция FGSimpleCaptcha($captcha_var_name)

{

$this->captcha_varname='$captcha_var_name'; // ?

$this->uniquekey='abc12fghijkl34mno;

}

/Добавьте сюда больше простых вопросов./

функция GetSimpleCaptcha()

{

$arrQuestions = массив(

"Какой цвет: носок, библиотека, торт или красный?" =>"красный",

«Введите число тринадцать тысяч триста шестьдесят восемь в

цифры: "=>"13,368");

$question = array_rand($arrQuestions);

$ответ = $arrQuestions[$вопрос];

$_SESSION['FGCF_Captcha_Answer'] = $this->Md5CaptchaAnswer

($ответ);

вернуть $вопрос;

}

функция SetFormKey($key)

{ $this->uniquekey = $key; }

функция ПолучитьКлюч()

{ вернуть $this->uniquekey; }

функция Проверить()

{

$рет = ложь;

if(пустой($_POST[$this->captcha_varname]))

{

$this->error_str = "Пожалуйста, ответьте на вопрос о защите от спама";

$рет = ложь;

}

еще

{

$scaptcha = Trim($_POST[$this->captcha_varname]);

$ scaptcha = strtolower ($ scaptcha);

$user_answer = $this->Md5CaptchaAnswer($scaptcha);

if($user_answer != $_SESSION['FGCF_Captcha_Answer'])

{

$this->error_str = "Не удалось выполнить проверку на спам!";

$рет = ложь;

}

еще

{$ret = правда; }

}

//еще

вернуть $рет;

}

функция Md5CaptchaAnswer($ответ)

{ return md5($this->GetKey().$ответ); }

функция ПолучитьОшибку()

{ return $this->error_str; }

}

?>

synzilla


Рег
11 Feb, 2016

Тем
1

Постов
2

Баллов
12
  • 01, Jun 2024
  • #2
Вам не хватает одинарной кавычки в конце содержимого переменной $this->uniquekey. Должен быть
 
$this->uniquekey='abc12fghijkl34mno;
PHP: Нет
  $this->uniquekey='abc12fghijkl34mno'; 
PHP: И на будущее, когда вы вставляете код, обязательно помещайте его в теги
  или [code=php]  (уберите пробел внутри) или используйте кнопку «Вставить -> Код» в редакторе.
 

Vovkylaka


Рег
01 Jan, 2011

Тем
1

Постов
2

Баллов
12
  • 07, Jun 2024
  • #3
Если вы все еще получаете вывод PHP в браузер, значит, что-то не так, потому что этот класс сам по себе, пока вы удаляете бит «расширяет другой класс», ничего не выводит.

Только пустая страница.

Поскольку вы не публикуете остальную часть своего кода, трудно сказать, где может быть ошибка — она может быть в другом классе, может быть на странице, на которой вы пытаетесь использовать это, и т. д.
 

Lakki


Рег
10 Mar, 2012

Тем
1

Постов
2

Баллов
12
  • 11, Jun 2024
  • #4
Ну, теперь я вижу еще одну ошибку в первой строке - удалите ; после FG_CaptchaHandler — он должен перейти непосредственно к { Однако этот класс/продукт во многих отношениях кажется довольно плохим. Не думаю, что я бы использовал его для чего-то важного.
 

lace


Рег
12 May, 2014

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно