нужна помощь, чтобы добавить контактную форму с капчей


Привет, я новичок в PHP и хотел бы получить некоторую помощь, пожалуйста. Я создал контактную форму и хотел бы добавить немного капчи. Я создал несколько gif-изображений, на которых есть цифры с добавлением некоторого шума, и назвал code_01.gif для № 1, code_02.gif для no2 и т. Д. и т. Д. Я поместил некоторые из них в свою форму, статически, для целей отображения следующим образом:

<img src="images/code_01.gif" />
<img src="images/code_07.gif" />
<img src="images/code_01.gif" />
<img src="images/code_08.gif" />
<img src="images/code_03.gif" />
<img src="images/code_07.gif" />
<input name="captcha" type="text" id="captcha" />

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

Буду признателен за любую помощь.

Author: Lykos, 2012-07-12

3 answers

Простая PHP-капча

Это один из самых простых сценариев КАПЧИ, которые вы когда-либо будете использовать. Хотя он не скрывает текст, он хорошо послужит своей цели для многих людей, которым нужно низкоуровневое решение для КАПЧИ. Этот сценарий практически не требует настройки. Единственная зависимость - это библиотека PHP GD.

Он может быть таким же простым в использовании, но он также настраивается:

<?php

session_start();
include("captcha.php");
$_SESSION['captcha'] = captcha();

echo '<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA" />';

?>

Демонстрация: http://labs.abeautifulsite.net/simple-php-captcha /

 5
Author: Praveen Kumar Purushothaman, 2012-07-12 08:51:31

Вы также можете использовать это: Изображение безопасности

Securimage - это бесплатный PHP-скрипт КАПЧИ с открытым исходным кодом для создания сложных изображений и кодов КАПЧИ для защиты форм от спама и злоупотреблений. Его можно легко добавить в существующие формы на вашем веб-сайте, чтобы обеспечить защиту от спам-ботов. Он может работать практически на любом веб-сервере, если у вас установлен PHP и поддержка GD в PHP. Securimage выполняет все: от создания изображений с КАПЧЕЙ до проверки введенного кода. Слышимый коды могут передаваться в браузер с помощью Flash для людей с ослабленным зрением.

 3
Author: , 2012-07-13 02:39:09

Вот простая математическая вещь типа captha, которую я нашел давным-давно.
Преимущества:
- Нет изображений, поэтому меньше использование полосы пропускания.
- Никакой внешней зависимости.

ПРОЦЕСС ПОТОКА

В form.php:

  1. Выберите одно случайное число $n1
  2. Выберите другое случайное число $n2
  3. Вычислить $n1 & $n2 с различными математическими операциями и сохраните его как $result, чтобы результирующее число было непредсказуемым и не выровненным с $n1+$n2
  4. Эхо "Что такое $n1 + $n2?"
  5. Попросите пользователя ввести ответ на вопрос, заданный на шаге 4.
  6. Добавьте $result в качестве скрытого значения в форме.
  7. При отправке значения $_POST обрабатываются check.php.

В check.php:

  1. Если установлено значение $_POST["answer"], сохраните его в $answer
  2. Вычислите $answer таким же образом, как это было вычислено на шаге 3 из form.php
  3. Теперь, если $answer равно $_POST["result"], проверяется, что пользователь Человек.

Имейте в виду, что $answer - это ответ, отправленный пользователем & $result - это наш результат после выполнения математических операций над $answer.

КОД:

Файл:form.php

<?php

$n1 = rand(1,15);
$n2 = rand(1,15);
//start making our result unpredictable & non-aligned with hidden value
$result = $n1+$n2;
$result = ($result*3)-2;
$result = ($result+4)*5;
$question="what is $n1 + $n2?";
?>
<form method="post" action="check.php">
<?php echo $question.PHP_EOL; ?>
<input name="answer" type="text"><br />
<input type="hidden" name="result" value="<?php echo $result; ?>">
</form>

Файл:check.php

<?php

if(isset($_POST["answer")){
    $answer = $_POST["answer"];
    // start doing same math on $answer
    $answer = ($answer*3)-2;
    $answer = ($answer+4)*5;
    if($answer == $_POST["result"]{
        // echo Hurray, you are Human..
        // Do anything here.. 
    }else{
        echo "Wrong Answer";
    }

Реализация логики на http://codepad.org/2MtULNhZ

Ключ в том, чтобы усложнить формулу кодирования и декодирования. Так что кто-то, глядя на hidden form value result и Question не следует выяснять связь между обоими их.

 -1
Author: DavChana, 2012-11-08 21:59:35