Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Помогите сгделать мод 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))

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

  23.12.2015 в 08:05, afwollis сказал:

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

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

Ну как) искал русскую версию и нашел) 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();
		}
Ссылка на комменирий
Погделиться на других сайих

  24.12.2015 в 12:48, afwollis сказал:

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

 

 

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

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


  24.12.2015 в 12:48, afwollis сказал:

попробуй ик:

			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
Ссылка на комменирий
Погделиться на других сайих


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

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
Да же проходишь проверку, все хорошо. Если нажимаешь продолжить или не проходишь проверку выдает эту ересь(( блин((
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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