Jump to content
Sign in to follow this  
HeKTo

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

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

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

Share this post


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

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

Share this post


Link to post
Share on other sites

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

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

(Version 2.1.0.1 (rs.2))

Share this post


Link to post
Share on other sites

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

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

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

 

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

google_captcha.php

Edited by HeKTo

Share this post


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();
		}

Share this post


Link to post
Share on other sites

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

 

 

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

Share this post


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();
		}

Ща гляну

Share this post


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

Share this post


Link to post
Share on other sites

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

Share this post


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

Share this post


Link to post
Share on other sites

$recaptcha = array();
>>

$recaptcha = '';

Share this post


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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

написал в ЛС

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.