Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

(Version 2.1.0.1 (rs.2))

Link to post
Share on other sites

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

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

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

 

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

google_captcha.php

Edited by HeKTo
Link to post
Share on other sites

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

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

			curl_close($curl);
		}

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

			curl_close($curl);
			
			$recaptcha = json_decode($recaptcha, true);
		} else {
			$recaptcha = array();
		}
Link to post
Share on other sites

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

 

 

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

Link to post
Share on other sites

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

			curl_close($curl);
		}

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

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

Ща гляну

Link to post
Share on other sites

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

 

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');
        }
    }
}
Edited by afwollis
Link to post
Share on other sites

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

Link to post
Share on other sites

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

<?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
Edited by HeKTo
Link to post
Share on other sites

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

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
Так же проходишь проверку, все хорошо. Если нажимаешь продолжить или не проходишь проверку выдает эту ересь(( блин((
Link to post
Share on other sites

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.