Перейти к содержимому


Фото
* * * * * 2 голосов

[2.*] reCAPTCHA API 2.0 (капча от гугл)


  • Чтобы отвечать, сперва войдите на форум
75 ответов в теме

#21 filth

filth
  • Пользователь
  • 345 сообщений
  • Пользователь

Опубликовано 26.09.2016 - 00:05

Извините, так способ рабочий или нет?

Рабочий.



#22 mx009

mx009
  • Пользователь
  • 117 сообщений
  • Версия CMS:2.x

Опубликовано 08.01.2017 - 16:41

Господа обновите пож инструкцию

Что то не работает на 2.2.4 !

 

Спасибо



#23 baarseek

baarseek
  • Пользователь
  • 41 сообщений

Опубликовано 09.01.2017 - 00:08

Тоже достали кучи спам-комментариев?)



#24 Gandalf

Gandalf
  • Пользователь
  • 124 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:West

Опубликовано 09.01.2017 - 19:15

Господа обновите пож инструкцию

Что то не работает на 2.2.4 !

 

Спасибо

Все работает



#25 Nanco

Nanco
  • Пользователь
  • 24 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Ukrain

Опубликовано 13.01.2017 - 13:53

Так и не нашол ответа по 5-тому пункту.

 

5. Открываем файл \view\CartView.php BlogView.php FeedbackView.php ProductView.php RegisterView.php

добавляем:

class *НАЗВАНИЕ МОДУЛЯ* extends View
{
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 

 

В примере с \view\CartView.php

получаю ошибку:

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /var/www/.../view/CartView.php on line 19

Код вставил сюда:

 

 class CartView extends View
{
    $response = null;
    $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 
 
   public function __construct()
  {
    parent::__construct();

 

Что не так чего он сыпется ? 



#26 jamaica

jamaica
  • Пользователь
  • 4 сообщений

Опубликовано 19.01.2017 - 14:23

Так и не нашол ответа по 5-тому пункту.

Я пока поставил на регистрацию. Работает

 

 

 

View.php

<?PHP

require_once('View.php');

class RegisterView extends View
{
  function fetch()
  {
      $default_status = 1; // Активен ли пользователь сразу после регистрации (0 или 1)
		
      if($this->request->method('post') && $this->request->post('register'))
      {
         $response = null;
         $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);
            
         $name			= $this->request->post('name');
         $email			= $this->request->post('email');
         $password		= $this->request->post('password');
			
         $captcha_code   = $this->request->post('g-recaptcha-response');
         $response = $reCaptcha->verify($captcha_code, $order->ip);
			
         $this->design->assign('name', $name);
         $this->design->assign('email', $email);
			
         $this->db->query('SELECT count(*) as count FROM __users WHERE email=?', $email);
         $user_exists = $this->db->result('count');

         ...

 

 

 

 

 

 

register.tpl

<form method="post">
  <fieldset class="form">
    <div class="form-group">
      <label class="form-group__label" for="register-name">Имя</label>
      <input id="register-name" class="form-field form-group__input" type="text" name="name" data-format=".+" data-notice="Введите имя" value="{$name|escape}" maxlength="255" />
    </div>

    <div class="form-group">
      <label class="form-group__label" for="register-email">Email</label>
      <input id="register-email" class="form-field form-group__input" type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255" />
    </div>

    <div>
      <label class="form-group__label" for="register-password">Пароль</label>
      <input id="register-password" class="form-field form-group__input" type="password" name="password" data-format=".+" data-notice="Введите пароль" value="" />
    </div> 
						
    <div class="g-recaptcha" data-sitekey="{$settings->site_code|escape}"></div>

    <input type="submit" class="button reg-btn" name="register" value="Зарегистрироваться" />

  </fieldset>
</form>

 


 



#27 Лена

Лена
  • Пользователь
  • 10 сообщений
  • Пользователь

Опубликовано 22.01.2017 - 17:04

4e8ceb61320d1cf55f973ff0cd65fe59.png

 

Новая капча (reCAPTCHA 2.0) взамен старой капчи от Simpla CMS

 

1 Заходим на сайт https://www.google.com/recaptcha/admin
Получаем ключи, которые потом будет записывать в админке в разделе "Настройки"

 

 

1.1 Загружаем файлы в папку captcha

2. Открываем файл \simpla\SettingsAdmin.php

добавляем: 

/* ReCaptcha */
$this->settings->site_code = $this->request->post('site_code');            
$this->settings->secret_code = $this->request->post('secret_code');    

// Простые звонки

3. открываем файл  simpla\design\html\settings.tpl

добавляем:

<h2>Управление <a href="https://www.google.com/recaptcha/admin">ключами ReCaptcha API</a></h2>            
<ul>                    
    <li><label class=property>Ключ</label><input name="site_code" class="simpla_inp" type="text" value="{$settings->site_code|escape}" /></li>
    <li><label class=property>Секретный ключ</label><input name="secret_code" class="simpla_inp" type="text" value="{$settings->secret_code|escape}" /></li>            
</ul>
<h2>Интеграция с <a href="http://prostiezvonki.ru">простыми звонками</a></h2> 

4. Открываем файл \view\View.php

вставляем:

require_once('api/Simpla.php');
require_once('captcha/autoload.php'); 

5. Открываем файл \view\CartView.php BlogView.php FeedbackView.php ProductView.php RegisterView.php

добавляем:

class *НАЗВАНИЕ МОДУЛЯ* extends View
{
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 

ищем: 

$captcha_code =  $this->request->post('captcha_code', 'string'); 

заменяем на:

$captcha_code =  $this->request->post('g-recaptcha-response');
$response = $reCaptcha->verify($captcha_code, $order->ip);

*ищем:

elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))

*заменяем на: 

elseif($response->getErrorCodes())

------ ИНФОРМАЦИЯ -----------------------------------------------------------------------------------------------------------------------

* в некоторых случаях будет

elseif(empty($_SESSION['captcha_code']) || $_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))

​заменяем на:

elseif($response->getErrorCodes())  

или 

if ($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) 

​заменяем на:

if($response->getErrorCodes())

------ ИНФОРМАЦИЯ -----------------------------------------------------------------------------------------------------------------------

 

удаляем (если есть):

unset($_SESSION['captcha_code']); 

 

 

6. Открываем файл design\[ваш шаблон]\html\index.tpl

добавляем:

<script src='https://www.google.com/recaptcha/api.js'></script>		
</head>

7. Открываем файлы design\[ваш шаблон]\html\cart feedback post product register.tpl
ищем:

<div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}" alt='captcha'/></div> 
<input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/>

заменяем на:

<div class="g-recaptcha" data-sitekey="{$settings->site_code|escape}"></div>

Большое спасибо. Все просто отлично работает!!!

 

12710030.png12710031.png



#28 makim925

makim925
  • Пользователь
  • 60 сообщений
  • Дизайн, Верстка, SEO, Заказчик
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 29.01.2017 - 01:10

У МЕНЯ ТОЖЕ ПРОБЛЕМА НА 5 ПУНКТЕ ? КАКИЕ РЕШЕНИЯ ? 



#29 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 230 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 29.01.2017 - 02:03


У МЕНЯ ТОЖЕ ПРОБЛЕМА НА 5 ПУНКТЕ ? КАКИЕ РЕШЕНИЯ ?


Для начала отключить капслок и перестать писать как блондинко.

#30 makim925

makim925
  • Пользователь
  • 60 сообщений
  • Дизайн, Верстка, SEO, Заказчик
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 29.01.2017 - 11:36

Я понимаю что проблема может быть руках но в 5 пункте делаю все по списку на главной странице все хорошо она работает когда захожу в карточку товара то сайт не работает

Прошу помощи т.к. понять не могу из-за чего

#31 Kosjak76

Kosjak76
  • Модератор
  • 3 843 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 29.01.2017 - 11:38

$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 

Вот это надо вставлять не после class а в ФУНКЦИЮ



#32 yr4ik

yr4ik
  • Фрилансер
  • 925 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 31.01.2017 - 20:31

может кому пригодится. Сделал тоже самое но для vqmod

 


установка:

1) распаковать содержимое архива в папку vqmod/mod

2) пройти по ссылке ВАШ_САЙТ/vqmod/recaptcha/install

3) выполнить пункты 1 и 7 из инструкции

 

 

 

Прикрепленные файлы:


Изменено: yr4ik, 13.02.2017 - 15:59


#33 playboy

playboy
  • Пользователь
  • 29 сообщений

Опубликовано 01.02.2017 - 10:45

Всем привет

Выдает ошибку

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /home/playboy/public_html/captcha/autoload.php on line 8

 

Все делал по инструкции, проверил еще раз, Кто то может подсказать где ошибка ?

капча родная не работает изначально, может сама сборка говно ?


Изменено: playboy, 01.02.2017 - 11:22


#34 yr4ik

yr4ik
  • Фрилансер
  • 925 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 04.02.2017 - 16:09

Всем привет

Выдает ошибку

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /home/playboy/public_html/captcha/autoload.php on line 8

 

Все делал по инструкции, проверил еще раз, Кто то может подсказать где ошибка ?

капча родная не работает изначально, может сама сборка говно ?

 

Полагаю у вас наверное php < 5.3 версии



#35 simpler

simpler
  • Пользователь
  • 49 сообщений
  • Дизайн, Верстка, SEO, Заказчик
  • Версия CMS:2.x
  • Откуда:Omsk

Опубликовано 07.02.2017 - 09:18

Сделал по инструкции в первом посте - всё заработало.

 

 

Но теперь комментарии к товарам оставляются без модерации, подскажите куда копать?



#36 Julius123

Julius123
  • Пользователь
  • 249 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 09.02.2017 - 11:08

Выдаёт такую ошибку

Parse error: syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) in /home/www/view/FeedbackView.php on line 75

Скажите что сделал не так?

Прикрепленные файлы:



#37 mishanya

mishanya
  • Фрилансер
  • 2 566 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 09.02.2017 - 11:29

Выдаёт такую ошибку

Parse error: syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) in /home/www/view/FeedbackView.php on line 75

Скажите что сделал не так?

 

 

все не так.

 

class FeedbackView extends View
{
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 
}

class FeedbackView extends View уже вверху есть зачем вы дублируете это 

 

нужно было вставить

$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);  

перед

$feedback = new stdClass;


#38 Julius123

Julius123
  • Пользователь
  • 249 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 12.02.2017 - 11:12

Выдаёт такую ошибку

Fatal error: Uncaught exception 'RuntimeException' with message 'No secret provided' in /home/captcha/ReCaptcha/ReCaptcha.php:61 Stack trace: #0 /home/view/RegisterView.php(9): ReCaptcha\ReCaptcha->__construct(NULL) #1 /home/view/IndexView.php(92): RegisterView->fetch() #2 /home/index.php(18): IndexView->fetch() #3 {main} thrown in /home/captcha/ReCaptcha/ReCaptcha.php on line 61

Разобрался, не ввел ключи в админке  :unsure:


Изменено: Julius123, 12.02.2017 - 11:18


#39 Julius123

Julius123
  • Пользователь
  • 249 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 12.02.2017 - 11:38

Еще пытаюсь поставить но второй магазин на котором стоит Okay

Там например в RegisterView строка выглядит так:

} elseif($this->settings->captcha_register && (($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) || empty($_SESSION['captcha_code']))) {  
                $this->design->assign('error', 'captcha');

заменяю на:

elseif($response->getErrorCodes())

и при отправке формы ошибка

Fatal error: Call to a member function getErrorCodes() on null in /home/view/RegisterView.php on line 37


#40 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 230 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 12.02.2017 - 13:54

По вопросам окея идите на соответствующий форум. Этот форум посвящен вопросам симплы.




0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых