Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Приветствую друзья. Стоит сборка Опенкарт 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!"}}"

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

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

Надіслати
Поділитися на інших сайтах


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

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

Ну как) искал русскую версию и нашел) 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) - не работает?

 

 

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

Надіслати
Поділитися на інших сайтах


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

 

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


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.