registrace uživatele v k2

Ernst
11. říj 2018 21:39 - 11. říj 2018 21:39 #137221
při registrace uživatele s pomocí captcha v K2 mi to následně vypíše chybu Could not verify that you are not a robot.
Uživatel se nezaloží.
Captcha je nastavena správně a na jiných místech funguje OK

joomla 3.8.13. K2 2.9 stránka www.eshop-diochi.cz/cs/login/registrace (je to testovací, klidně si zkuste založit uživatele).

Samotná kontrola captcha je v /components/com_k2/helpers/utilities.php
	public static function verifyRecaptcha()
	{
		$params = JComponentHelper::getParams('com_k2');
		$vars = array();
		$vars['secret'] = $params->get('recaptcha_private_key');
		$vars['response'] = $_POST['g-recaptcha-response'];
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($vars, '', '&'));
		$result = curl_exec($ch);
		$info = curl_getinfo($ch);
		curl_close($ch);
		$response = json_decode($result);
		if($result && $info['http_code'] == 200 && is_object($response) && isset($response->success) && $response->success == true)
		{
			return true;
		}
		else
		{
			return false;
		}
	}

a volání funkce je v /www/plugins/user/k2/k2.php
if($params->get('recaptchaV2'))
			{
				require_once JPATH_SITE.'/components/com_k2/helpers/utilities.php';
				if (!K2HelperUtilities::verifyRecaptcha())
				{
					if (K2_JVERSION != '15')
					{
						$url = 'index.php?option=com_users&view=registration';
					}
					else
					{
						$url = 'index.php?option=com_user&view=register';
					}
					$application->enqueueMessage(JText::_('K2_COULD_NOT_VERIFY_THAT_YOU_ARE_NOT_A_ROBOT'), 'error');
					$application->redirect($url);
				}
			}
			else

a zobrazení captcha je v /components/com_k2/templates/register.php
		<?php if($this->K2Params->get('recaptchaOnRegistration') && $this->K2Params->get('recaptcha_public_key')): ?>
		<?php if(!$this->K2Params->get('recaptchaV2')): ?>
		<label class="formRecaptcha"><?php echo JText::_('K2_ENTER_THE_TWO_WORDS_YOU_SEE_BELOW'); ?></label>
		<?php endif; ?>
		<div id="recaptcha" class="<?php echo $this->recaptchaClass; ?>"></div>
		<?php endif; ?>

Já tam chybu najít nevidím, napadá vás něco?

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
11. říj 2018 21:59 #137223
Vycházím z předpokladu, že ReCaptcha v K2 funguje, pak jediné co mě napadá je podpora cUrl. Je na serveru podpora cUrl?
Druhá věc je správně zadaný PublicKey, "všude jinde" si to bere public key z nastavení pluginu, tady je samostatné nastavení.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
11. říj 2018 22:09 - 11. říj 2018 22:12 #137224
Klíče jsou v pořádku , to jsem kontroloval a asi by se ani captcha nevypsala.
Je to na active24 a podpora cUrl tam je.

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
11. říj 2018 22:22 #137225
Tak pak bych zkusil debugger chudého programátora - var_dump :)

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
11. říj 2018 22:23 #137226
ještě jsem si pro jistotu zapnul v k2 komentáře a tam captcha funguje.

Zapnul jsem jen v tomto jednom článku www.eshop-diochi.cz/cs/aktuality-a-zajim...prvni-pomoc-na-cesty

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
11. říj 2018 22:26 #137227
ano, Cony, také už se s tím smiřuji, ale moc se mi do toho nechce B)

zkouším, zda se s tím někdo nesetkal.

Navíc si myslím, že to dříve šlo, ale od té doby bylo dost upgrade a taky google mohl něco změnit

Ale působí to na mě jako obecná chyba v K2, nemá to možnost někdo zkusit na jiném webu?

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Houbák
11. říj 2018 23:34 #137228
Nepomohlo by do kódu k cURL doplnit
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
12. říj 2018 09:41 #137231
bohužel ne, ale určitě je chyba v tom verifyrecaptcha()

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
12. říj 2018 10:04 #137233
Captcha tam vrátí chybu timeout-or-duplicate, snažím se něco vygooglit

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
12. říj 2018 10:37 #137234
nevím zda uvažuji správně, ale kontrola recaptcha v2 probíhá online javascriptem a pokud se formulář odešle buttonem, proběhne ta kontrola znovu. Je vůbec nutné, aby byla volána funkce verifyRecaptcha?

Mám si sem dát avatara, tak je tam :D.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
12. říj 2018 11:36 #137238
tak jsem tu funkci verifyRecaptcha() vyřadil. Mají tam zjevně chybu.
Napsal jsem jim na K2 portál a pokud něco odepíší, dám vědět.

Mám si sem dát avatara, tak je tam :D.
Poděkovali: Cony

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.