jamaica Posted January 19, 2017 Report Share Posted January 19, 2017 Так и не нашол ответа по 5-тому пункту.Я пока поставил на регистрацию. Работает View.php <?PHP require_once('View.php'); class RegisterView extends View { function fetch() { $default_status = 1; // Активен ли пользователь сразу после регистрации (0 или 1) if($this->request->method('post') && $this->request->post('register')) { $response = null; $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); $name = $this->request->post('name'); $email = $this->request->post('email'); $password = $this->request->post('password'); $captcha_code = $this->request->post('g-recaptcha-response'); $response = $reCaptcha->verify($captcha_code, $order->ip); $this->design->assign('name', $name); $this->design->assign('email', $email); $this->db->query('SELECT count(*) as count FROM __users WHERE email=?', $email); $user_exists = $this->db->result('count'); ... register.tpl <form method="post"> <fieldset class="form"> <div class="form-group"> <label class="form-group__label" for="register-name">Имя</label> <input id="register-name" class="form-field form-group__input" type="text" name="name" data-format=".+" data-notice="Введите имя" value="{$name|escape}" maxlength="255" /> </div> <div class="form-group"> <label class="form-group__label" for="register-email">Email</label> <input id="register-email" class="form-field form-group__input" type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255" /> </div> <div> <label class="form-group__label" for="register-password">Пароль</label> <input id="register-password" class="form-field form-group__input" type="password" name="password" data-format=".+" data-notice="Введите пароль" value="" /> </div> <div class="g-recaptcha" data-sitekey="{$settings->site_code|escape}"></div> <input type="submit" class="button reg-btn" name="register" value="Зарегистрироваться" /> </fieldset> </form> Quote Link to post Share on other sites
Лена Posted January 22, 2017 Report Share Posted January 22, 2017 Новая капча (reCAPTCHA 2.0) взамен старой капчи от Simpla CMS 1 Заходим на сайт https://www.google.com/recaptcha/adminПолучаем ключи, которые потом будет записывать в админке в разделе "Настройки" 1.1 Загружаем файлы в папку captcha2. Открываем файл \simpla\SettingsAdmin.phpдобавляем: /* ReCaptcha */ $this->settings->site_code = $this->request->post('site_code'); $this->settings->secret_code = $this->request->post('secret_code'); // Простые звонки 3. открываем файл simpla\design\html\settings.tplдобавляем: <h2>Управление <a href="https://www.google.com/recaptcha/admin">ключами ReCaptcha API</a></h2> <ul> <li><label class=property>Ключ</label><input name="site_code" class="simpla_inp" type="text" value="{$settings->site_code|escape}" /></li> <li><label class=property>Секретный ключ</label><input name="secret_code" class="simpla_inp" type="text" value="{$settings->secret_code|escape}" /></li> </ul> <h2>Интеграция с <a href="http://prostiezvonki.ru">простыми звонками</a></h2> 4. Открываем файл \view\View.phpвставляем: require_once('api/Simpla.php'); require_once('captcha/autoload.php'); 5. Открываем файл \view\CartView.php | BlogView.php | FeedbackView.php | ProductView.php | RegisterView.phpдобавляем: class *НАЗВАНИЕ МОДУЛЯ* extends View { $response = null; $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); ищем: $captcha_code = $this->request->post('captcha_code', 'string'); заменяем на: $captcha_code = $this->request->post('g-recaptcha-response'); $response = $reCaptcha->verify($captcha_code, $order->ip); *ищем: elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) *заменяем на: elseif($response->getErrorCodes()) ------ ИНФОРМАЦИЯ -----------------------------------------------------------------------------------------------------------------------* в некоторых случаях будет elseif(empty($_SESSION['captcha_code']) || $_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) заменяем на: elseif($response->getErrorCodes()) или if ($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) заменяем на: if($response->getErrorCodes())------ ИНФОРМАЦИЯ ----------------------------------------------------------------------------------------------------------------------- удаляем (если есть): unset($_SESSION['captcha_code']); 6. Открываем файл design\[ваш шаблон]\html\index.tplдобавляем: <script src='https://www.google.com/recaptcha/api.js'></script> </head> 7. Открываем файлы design\[ваш шаблон]\html\cart | feedback | post | product | register.tpl, ищем: <div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}" alt='captcha'/></div> <input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/> заменяем на: <div class="g-recaptcha" data-sitekey="{$settings->site_code|escape}"></div> Большое спасибо. Все просто отлично работает!!! Quote Link to post Share on other sites
makim925 Posted January 28, 2017 Report Share Posted January 28, 2017 У МЕНЯ ТОЖЕ ПРОБЛЕМА НА 5 ПУНКТЕ ? КАКИЕ РЕШЕНИЯ ? Quote Link to post Share on other sites
Noxter Posted January 28, 2017 Report Share Posted January 28, 2017 У МЕНЯ ТОЖЕ ПРОБЛЕМА НА 5 ПУНКТЕ ? КАКИЕ РЕШЕНИЯ ?Для начала отключить капслок и перестать писать как блондинко. Quote Link to post Share on other sites
makim925 Posted January 29, 2017 Report Share Posted January 29, 2017 Я понимаю что проблема может быть руках но в 5 пункте делаю все по списку на главной странице все хорошо она работает когда захожу в карточку товара то сайт не работает Прошу помощи т.к. понять не могу из-за чего Quote Link to post Share on other sites
Kosjak76 Posted January 29, 2017 Report Share Posted January 29, 2017 $response = null;$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); Вот это надо вставлять не после class а в ФУНКЦИЮ Quote Link to post Share on other sites
yr4ik Posted January 31, 2017 Report Share Posted January 31, 2017 (edited) может кому пригодится. Сделал тоже самое но для vqmod установка:1) распаковать содержимое архива в папку vqmod/mod2) пройти по ссылке ВАШ_САЙТ/vqmod/recaptcha/install3) выполнить пункты 1 и 7 из инструкции recaptcha.zip Edited February 13, 2017 by yr4ik Quote Link to post Share on other sites
playboy Posted February 1, 2017 Report Share Posted February 1, 2017 (edited) Всем приветВыдает ошибкуParse error: syntax error, unexpected T_FUNCTION, expecting ')' in /home/playboy/public_html/captcha/autoload.php on line 8 Все делал по инструкции, проверил еще раз, Кто то может подсказать где ошибка ?капча родная не работает изначально, может сама сборка говно ? Edited February 1, 2017 by playboy Quote Link to post Share on other sites
yr4ik Posted February 4, 2017 Report Share Posted February 4, 2017 Всем приветВыдает ошибкуParse error: syntax error, unexpected T_FUNCTION, expecting ')' in /home/playboy/public_html/captcha/autoload.php on line 8 Все делал по инструкции, проверил еще раз, Кто то может подсказать где ошибка ?капча родная не работает изначально, может сама сборка говно ? Полагаю у вас наверное php < 5.3 версии Quote Link to post Share on other sites
simpler Posted February 7, 2017 Report Share Posted February 7, 2017 Сделал по инструкции в первом посте - всё заработало. Но теперь комментарии к товарам оставляются без модерации, подскажите куда копать? Quote Link to post Share on other sites
Julius123 Posted February 9, 2017 Report Share Posted February 9, 2017 Выдаёт такую ошибку Parse error: syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) in /home/www/view/FeedbackView.php on line 75 Скажите что сделал не так?FeedbackView.phpSettingsAdmin.phpView.php Quote Link to post Share on other sites
mishanya Posted February 9, 2017 Report Share Posted February 9, 2017 Выдаёт такую ошибку Parse error: syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) in /home/www/view/FeedbackView.php on line 75 Скажите что сделал не так? все не так. class FeedbackView extends View { $response = null; $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); } class FeedbackView extends View уже вверху есть зачем вы дублируете это нужно было вставить $response = null; $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); перед $feedback = new stdClass; Quote Link to post Share on other sites
Julius123 Posted February 12, 2017 Report Share Posted February 12, 2017 (edited) Выдаёт такую ошибку Fatal error: Uncaught exception 'RuntimeException' with message 'No secret provided' in /home/captcha/ReCaptcha/ReCaptcha.php:61 Stack trace: #0 /home/view/RegisterView.php(9): ReCaptcha\ReCaptcha->__construct(NULL) #1 /home/view/IndexView.php(92): RegisterView->fetch() #2 /home/index.php(18): IndexView->fetch() #3 {main} thrown in /home/captcha/ReCaptcha/ReCaptcha.php on line 61 Разобрался, не ввел ключи в админке Edited February 12, 2017 by Julius123 Quote Link to post Share on other sites
Julius123 Posted February 12, 2017 Report Share Posted February 12, 2017 Еще пытаюсь поставить но второй магазин на котором стоит OkayТам например в RegisterView строка выглядит так: } elseif($this->settings->captcha_register && (($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) || empty($_SESSION['captcha_code']))) { $this->design->assign('error', 'captcha'); заменяю на: elseif($response->getErrorCodes())и при отправке формы ошибка Fatal error: Call to a member function getErrorCodes() on null in /home/view/RegisterView.php on line 37 Quote Link to post Share on other sites
Noxter Posted February 12, 2017 Report Share Posted February 12, 2017 По вопросам окея идите на соответствующий форум. Этот форум посвящен вопросам симплы. Quote Link to post Share on other sites
Lavvod Posted February 13, 2017 Report Share Posted February 13, 2017 Еще пытаюсь поставить но второй магазин на котором стоит OkayТам например в RegisterView строка выглядит так: } elseif($this->settings->captcha_register && (($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) || empty($_SESSION['captcha_code']))) { $this->design->assign('error', 'captcha'); заменяю на: elseif($response->getErrorCodes())и при отправке формы ошибка Fatal error: Call to a member function getErrorCodes() on null in /home/view/RegisterView.php on line 37 У вас не создана функция getErrorCodes Quote Link to post Share on other sites
mishanya Posted February 13, 2017 Report Share Posted February 13, 2017 У вас не создана функция getErrorCodes эту ф-ю не нужно создавать она находится в подключаемом класе апи. просто не правильно подключили Quote Link to post Share on other sites
daramal Posted March 3, 2017 Report Share Posted March 3, 2017 (edited) Друзья, подключил на локальном. reCAPTCHA выходит. отправляю например комментарии к товару, то после нажатие Отправить выдает предупреждение : Warning: file_get_contents() [function.file-get-contents]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in W:\home\plama.loc\www\captcha\ReCaptcha\RequestMethod\Post.php on line 68 Warning: file_get_contents(https://www.google.com/recaptcha/api/siteverify) [function.file-get-contents]: failed to open stream: Invalid argument in W:\home\plama.loc\www\captcha\ReCaptcha\RequestMethod\Post.php on line 68 Warning: Cannot modify header information - headers already sent by (output started at W:\home\plama.loc\www\captcha\ReCaptcha\RequestMethod\Post.php:68) in W:\home\plama.loc\www\view\ProductView.php on line 275 Warning: Cannot modify header information - headers already sent by (output started at W:\home\plama.loc\www\captcha\ReCaptcha\RequestMethod\Post.php:68) in W:\home\plama.loc\www\index.php on line 33 и там где форма пишет: Неверно введена капча это с чем связано? быть может из-за того что сайт на локальном? Edited March 3, 2017 by DarAmal Quote Link to post Share on other sites
daramal Posted March 3, 2017 Report Share Posted March 3, 2017 Разобрался. на хосте разобрался подробно. Спасибо большое за reCAPTCHA Quote Link to post Share on other sites
vziker Posted March 9, 2017 Report Share Posted March 9, 2017 (edited) DarAmalТак в чём проблема была? У меня такая-же ошибка Edited March 9, 2017 by vziker Quote Link to post Share on other sites
daramal Posted March 9, 2017 Report Share Posted March 9, 2017 на локальном не сработало, а вот после переноса на хостинг тоже не сразу заработало.файлы, что были ранее описаны настроил немного по другому. Потом все пошло как надо.Если кому надо, вот нужные файлы:SettingsAdmin.phpView.phpBlogView.phpCartView.phpFeedbackView.phpProductView.phpRegisterView.php Quote Link to post Share on other sites
crfxtr123 Posted April 20, 2017 Report Share Posted April 20, 2017 У меня тоже проблема, как и в одном предыдущем посте. Сделал по инструкции - всё заработало. Но теперь комментарии к товарам и отзывы оставляются без модерации, подскажите куда копать? HELP! Quote Link to post Share on other sites
daramal Posted April 20, 2017 Report Share Posted April 20, 2017 Но теперь комментарии к товарам и отзывы оставляются без модерации, подскажите куда копать?странно, такого не должно быть. Quote Link to post Share on other sites
crfxtr123 Posted April 20, 2017 Report Share Posted April 20, 2017 странно, такого не должно быть. ситуация такая: модерации требует только первая запись. ее одобряю и для остальных уже модерация ненужна, добавляются записи сами. Quote Link to post Share on other sites
daramal Posted April 20, 2017 Report Share Posted April 20, 2017 ситуация такая: модерации требует только первая запись. ее одобряю и для остальных уже модерация ненужна, добавляются записи сами.ну по идее - такое изначально было в Simpla. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.