Перейти к содержанию
HeKTo

Помогите сделать мод Google Recaptcha (можно за отдельную плату)

Рекомендуемые сообщения

Приветствую друзья. Стоит сборка Опенкарт 2.0 (Version 2.1.0.1 (rs.2))

Так вроде все хорошо, но при включении Google Recaptcha начинаются траблы. Заходишь в обратную связьрегистрацию (не важно, главное чтоб была капча), ничего не вводишь, просто сразу нажимаешь кнопку "Продолжить". По идее должно выйти сообщение о незаполненности полей, но весь язык ломается и дает какую то ошибку связанную с Google Recaptcha. Но при этом если пройти проверку гугла и нажать продолжить, он вполне нормально все перезагружает и говорит что поля не заполнены (до этого фикса выдавал вышеописанное и еще ряд ошибок, изменилось когда я нашел вот тут http://www.opencart-templates.co.uk/google-recaptcha-curl мод типо решающий все ошибки с капчей, но похоже решились не все проблемы)

 

И еще проблема связанная так же с капчей при оформлении заявки (купите любой товар и начните заполнять поля, среди полей из неоткуда появляется поле "Telephone" которого в принципе не должно быть, потому что номер мы указываем выше) и выдает вот такую ошибку: 

"SyntaxError: JSON.parse:
unexpected character

OK

<b>Notice</b>: Undefined variable: recaptcha in
<b>/home/mozgmozg/fazlmarket.ru/docs/system/storage/modification/catalog/controller/captcha/google_captcha.php</b>
on line <b>59</b>{"error":{"telephone":"\u041d\u043e\u043c\u0435\u0440
\u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430
\u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c
\u043e\u0442 3 \u0434\u043e 32
\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!","captcha":"\u041f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u044b\u0439
\u043a\u043e\u0434 \u043d\u0435
\u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441
\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c!"}}"

Кто может решить проблему с этой капчей зловредной. Может быть за отдельную плату, без проблем (ну если без фанатизма конечно)

Просто очень хочца что бы магазин нормально фунциклировал :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2015-12-22 8:05:21 - PHP Notice:  Undefined variable: recaptcha in /home/mozgmozg/fazlmarket.ru/docs/system/storage/modification/catalog/controller/captcha/google_captcha.php on line 59

Вот что пишет в логах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прицепи оба файла - и оригинал, и кэш, который в ошибке.

и где ты вообще это взял

(Version 2.1.0.1 (rs.2))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прицепи оба файла - и оригинал, и кэш, который в ошибке.

и где ты вообще это взял

Ну как) искал русскую версию и нашел) opencart-russia точка ру

 

файл где дает ошибку прикрепил, а где файл кэша брать(и как называется именно тот кэш)?

google_captcha.php

Изменено пользователем HeKTo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. с оригинальным файлом (без барахла про СURL) - не работает?

попробуй так:

			curl_close($curl);
		}

        $recaptcha = json_decode($recaptcha, true);
>>

			curl_close($curl);
			
			$recaptcha = json_decode($recaptcha, true);
		} else {
			$recaptcha = array();
		}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. с оригинальным файлом (без барахла про СURL) - не работает?

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробуй так:

			curl_close($curl);
		}

        $recaptcha = json_decode($recaptcha, true);
>>

			curl_close($curl);
			
			$recaptcha = json_decode($recaptcha, true);
		} else {
			$recaptcha = array();
		}

Ща гляну

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С этим кодом вот что дает: 

 

Warning: json_decode() expects parameter 1 to be string, array given in /home/mozgmozg/fazlmarket.ru/docs/system/storage/modification/catalog/controller/captcha/google_captcha.php on line63

 

Вот как изменил: 

<?php
class ControllerCaptchaGoogleCaptcha extends Controller {
    public function index($error = array()) {
        $this->load->language('captcha/google_captcha');

        $data['heading_title'] = $this->language->get('heading_title');

		$data['entry_captcha'] = $this->language->get('entry_captcha');

		$this->document->addScript('https://www.google.com/recaptcha/api.js');

        if (isset($error['captcha'])) {
			$data['error_captcha'] = $error['captcha'];
		} else {
			$data['error_captcha'] = '';
		}

		$data['site_key'] = $this->config->get('google_captcha_key');

        $data['route'] = $this->request->get['route']; 

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/captcha/google_captcha.tpl')) {
			return $this->load->view($this->config->get('config_template') . '/template/captcha/google_captcha.tpl', $data);
		} else {
			return $this->load->view('default/template/captcha/google_captcha.tpl', $data);
		}
    }

    public function validate() {
        $this->load->language('captcha/google_captcha');

        //$recaptcha = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($this->config->get('google_captcha_secret')) . '&response=' . $this->request->post['g-recaptcha-response'] . '&remoteip=' . $this->request->server['REMOTE_ADDR']);

		if (!empty($this->request->post['g-recaptcha-response'])) {
			$curlConfig = array(
				CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
				CURLOPT_POST => true,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_POSTFIELDS => array(
					'secret' => $this->config->get('google_captcha_secret'),
					'response' => $this->request->post['g-recaptcha-response'],
					'remoteip' => $this->request->server['REMOTE_ADDR']
				)
			);

			$curl = curl_init();

			curl_setopt_array($curl, $curlConfig);

			$recaptcha = curl_exec($curl);

			if (!$recaptcha) {
				trigger_error(curl_error($curl));
			}
			
			curl_close($curl);

$recaptcha = json_decode($recaptcha, true);
		} else {
$recaptcha = array();
}

        $recaptcha = json_decode($recaptcha, true);

        if (!$recaptcha['success']) {
            return $this->language->get('error_captcha');
        }
    }
}
Изменено пользователем afwollis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже придется искать фрилансера( Раз русскоязычное сообщество движка бессильно)) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такс, ошибочка..

<?php
class ControllerCaptchaGoogleCaptcha extends Controller {
    public function index($error = array()) {
        $this->load->language('captcha/google_captcha');

        $data['heading_title'] = $this->language->get('heading_title');

		$data['entry_captcha'] = $this->language->get('entry_captcha');

		$this->document->addScript('https://www.google.com/recaptcha/api.js');

        if (isset($error['captcha'])) {
			$data['error_captcha'] = $error['captcha'];
		} else {
			$data['error_captcha'] = '';
		}

		$data['site_key'] = $this->config->get('google_captcha_key');

        $data['route'] = $this->request->get['route']; 

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/captcha/google_captcha.tpl')) {
			return $this->load->view($this->config->get('config_template') . '/template/captcha/google_captcha.tpl', $data);
		} else {
			return $this->load->view('default/template/captcha/google_captcha.tpl', $data);
		}
    }

    public function validate() {
        $this->load->language('captcha/google_captcha');

        //$recaptcha = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($this->config->get('google_captcha_secret')) . '&response=' . $this->request->post['g-recaptcha-response'] . '&remoteip=' . $this->request->server['REMOTE_ADDR']);

		if (!empty($this->request->post['g-recaptcha-response'])) {
			$curlConfig = array(
				CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
				CURLOPT_POST => true,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_POSTFIELDS => array(
					'secret' => $this->config->get('google_captcha_secret'),
					'response' => $this->request->post['g-recaptcha-response'],
					'remoteip' => $this->request->server['REMOTE_ADDR']
				)
			);

			$curl = curl_init();

			curl_setopt_array($curl, $curlConfig);

			$recaptcha = curl_exec($curl);

			if (!$recaptcha) {
				trigger_error(curl_error($curl));
			}
			
			curl_close($curl);

$recaptcha = json_decode($recaptcha, true);
		} else {
$recaptcha = array();
}

        if (!$recaptcha['success']) {
            return $this->language->get('error_captcha');
        }
    }
}

Вот переделал, но все вернулось обратно. Так же проходишь проверку все нормально, если не проходишь или просто жмешь продолжить выдает кракозябры и:

Notice: Undefined index: success in /home/mozgmozg/fazlmarket.ru/docs/system/storage/modification/catalog/controller/captcha/google_captcha.php on line 63
Изменено пользователем HeKTo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$recaptcha = array();
>>

$recaptcha = '';

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эхх(( Теперь другая ошибка( 

Warning: Illegal string offset 'success' in /home/mozgmozg/fazlmarket.ru/docs/system/storage/modification/catalog/controller/captcha/google_captcha.php on line 63Notice: Uninitialized string offset: 0 in /home/mozgmozg/fazlmarket.ru/docs/system/storage/modification/catalog/controller/captcha/google_captcha.php on line 63
Так же проходишь проверку, все хорошо. Если нажимаешь продолжить или не проходишь проверку выдает эту ересь(( блин((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вариантов нет больше? и не отвечает никто даже за деньги((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

написал в ЛС

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.