Библиотека капчи, которой не нужно загружать новую страницу?

Я использую этот инструмент PHP captcha на своем веб-сайте: https://web.archive.org/web/20060703144957/http://www.white-hat-web-design.co.uk/articles/php-captcha.php

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

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

Могу ли я запустить обработчик капчи без загрузки новой веб-страницы? Или есть альтернативная библиотека капчи, которая работает без перезагрузки веб-страницы?

Ответы (1)

recaptcha — это распространенное решение, предоставляемое Google.

Библиотека добавляет в форму обязательное поле, блокируя отправку до тех пор, пока пользователь не пройдет проверку, поэтому пользователь не рискует потерять введенные данные.

Чтобы начать использовать reCAPTCHA, вам необходимо зарегистрировать пару ключей API для вашего сайта. Пара ключей состоит из ключа сайта и секретного ключа. Ключ сайта используется для вызова службы reCAPTCHA на вашем сайте или в мобильном приложении. Секретный ключ разрешает связь между серверной частью вашего приложения и сервером reCAPTCHA для проверки ответа пользователя. https://developers.google.com/recaptcha/intro

Обратите внимание, что reCaptcha не обеспечивает конфиденциальность, и ее использование может отпугнуть тех, кто считает свою конфиденциальность важной. У Google уже есть свои усики на слишком многих сайтах (reCaptcha, Analytics, Ads; по оценкам, 80% всех веб-сайтов используют хотя бы один из них, что позволяет Google собирать данные о большинстве ваших действий в Интернете, что приводит к «суперпрофилю»). . Я бы никогда не разместил ничего подобного на своих страницах.
Часть моего сайта находится на github, поэтому пара ключей может быть плохой идеей. Каждый сможет увидеть ключ. Могу ли я хранить ключ в отдельном файле PHP в отдельной папке?
Определенно не секреты! Рекомендуемый способ развертывания секретов — через переменные среды; см. 12factor.net