вторник, 16 мая 2017 г.

ReCaptcha + eForm

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

В продолжении топика modx.im/blog/questions/4891.html

Не подошло решение, т.к. отпрака на почту мне не нужна.
Прикрутила ReCaptcha. Все ок

Но для сохранения общей картины сайта, пришлось и в eform менять капчу.

В файле eform.inc.php изменила код


if($vericode) {
                if(isset($_POST['g-recaptcha-response'])){
          $captcha=$_POST['g-recaptcha-response'];
        }
                $secretKey = "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ";
        $ip = $_SERVER['REMOTE_ADDR'];
        $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
        $responseKeys = json_decode($response,true);
        if(intval($responseKeys["success"]) !== 1) {
          $vMsg[count($vMsg)]=$_lang['ef_failed_vericode'];
                  $rClass['vericode']=$invalidClass; //added in 1.4.4
        } ;}

В вызове eForm прописать vericode=`1`

Взято тут

Спустя год использования уже нет уверенности, что все работает как надо и по этой причине после обновления modx evo о 1.4.6. решено было изменить работу связки reCAPTCHA для eForm - найдена статья.
Но у статьи есть первоисточник - ссылка.

Сделав по этой статье - всё равно иногда на почту валится непонятного содержания сообщения. Изучив очередной раз, что не так с этими сообщениями - остановился на том, что они не работом пишутся, а вероятно живыми людьми.

Как вариант найдена еще вот такая статья - если не устроит работа по предыдущей.