<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Капча с арифметическими операциями

Капча с арифметическими операциями

Не так давно меня попросили рассказать, как создать капчу с арифметическими операциями. Поскольку я сам это встречаю достаточно часто на самых различных сайтах, то решил выделить для этого отдельную статью. И из этой статьи Вы узнаете, как создаются капчи с любыми арифметическими операциями.

Привожу код такой капчи:

<?php
  session_start(); // Начинаем сессию
  $number_1 = rand(1, 100); // Генерируем 1-е случайное число
  $number_2 = rand(1, 100); // Генерируем 2-е случайное число
  $_SESSION['rand_code'] = $number_1 + $number_2; // Записываем их сумму в сессию
  $dir = "fonts/"; // Директория с шрифтами
  $image = imagecreatetruecolor(200, 60); // Создаём изображение
  $color = imagecolorallocate($image, 200, 100, 90); // Задаём 1-й цвет
  $white = imagecolorallocate($image, 255, 255, 255); // Задаём 2-й цвет
  imagefilledrectangle($image, 0, 0, 399, 99, $white); // Делаем капчу с белым фоном
  imagettftext ($image, 30, 0, 10, 40, $color, $dir."verdana.ttf", "$number_1 + $number_2"); // Пишем текст
  header("Content-type: image/png"); // Отсылаем заголовок о том, что это изображение png
  imagepng($image); // Выводим изображение
?>

Код хорошо прокомментирован, поэтому что-либо добавлять не буду, но скажу, что абсолютно также создаются любые другие капчи с арифметическими операциями. Никто не мешает поставить, например, знак умножения вместо знака плюса. Также никто не мешает сгенерировать ещё числа и создавать уже целые выражения. Главное, результат записывать в сессию, чтобы потом можно было проверить правильность ввода пользователем.

Выводится капча элементарно:

<img src="captcha.php" alt="" />

Проверка капчи тоже не намного сложнее:

<?php
  session_start(); // Начинаем сессию
  $captcha = $_POST["captcha"]; // Ответ, который ввёл пользователь
  /* Проверяем правильность ввода капчи (не забывайте проверять на "пустое значение", это очень важно!) */
  if (($capctha == $_SESSION["rand_code"]) && ($captcha != "")) echo "Капча введена правильно";
  else echo "Капча введена неправильно";
?>

Не думаю, что у человека, который знаком хоть немного с PHP, возникнут хоть какие-то трудности с пониманием создания капчи с арифметическими операциями.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (6):

Default Default 12.06.2012 19:11:20

После Вашей стать о регистрации и авторизации перешел сразу к капче. Статья хорошая и понятная, только дело вот в чем $dir = "fonts/" ; // Директория с шрифтами <<< дириктория эта папка в которой лежит нобходимый шрифт? и где взять тот или иной шрифт? а еще можно же создать массив в котором будут 4 интекса, это плюс, минус, умножить, делить и через Вами упомянутую в статье случаного вывода функции rand() выводить случайное арифметическое значение?)

Ответить

Admin Admin 12.06.2012 20:02:59

http://myrusakov.ru/kapcha-php.html

Ответить

kuller kuller 23.06.2012 10:17:29

боты легко решат эту капчу.... надо шума добавить на картинку. можно ещё зделать смену цвета фона рандом. Для этого где задаем цвет заместо одного цвета прописать rand(1,300); уже интересней становится ))) $color = imagecolorallocate($image, rand(1,300), rand(1,300), rand(1,300)); // Задаём 1-й цвет $white = imagecolorallocate($image, rand(1,300), rand(1,300), rand(1,300)); // Задаём 2-й цвет

Ответить

wanderer wanderer 07.07.2012 21:04:36

Хороший урок=)

Ответить

Admin Admin 07.07.2012 21:10:53

Теоретически, боты решат любую капчу, а данная капча служит для защиты от кого попало, коих 99%, поэтому её достаточно. Впрочем, если нужно ещё 0.9%, то можете и дальше защищать, до 99.9%, а взамен выслушивая справедливое недовольство пользователей.

Ответить

Нур-Мохмад Нур-Мохмад 12.07.2012 16:11:01

Сергей, лучше оставить эту капчу, а если Вы хотите дополнительную сложность и защиту, тогда Вы можете сделать такое условие: "Если пользователь с одного IP отправляет одну форму более 5 раз, то - усложнить капчу Вашим способом, для предотвращения спама"

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.