Adicionei o google recaptcha no formulário de contato, mas o valor também é enviado sem captcha. Eu usei na minha página de contato os seguintes códigos para captcha:
<div class="g-recaptcha" data-sitekey="XXXXXXXXXX"></div>
<script src='https://www.google.com/recaptcha/api.js'></script>
Estes dois código que eu usei. por favor me diga como posso validar o captcha.
magento-1.9
form-validation
contact-form
captcha
google-api
Manish Gaur
fonte
fonte
Respostas:
Você deve tentar este código: Eu tenho usado isso no meu site.
fonte
Este script usa para validação o Google reCaptcha como uma validação padrão do magento. por favor use-o.
fonte
Usei recaptcha no formulário de contato ..
fonte
A solução JavaScript aceita acima definitivamente NÃO é o caminho a percorrer na minha opinião. Qualquer bot que não esteja usando JS (que é a maioria deles) simplesmente ignorará sua validação e você receberá todo o spam que está tentando bloquear. Sempre sempre, sempre valide no servidor. A validação de JS é apenas um primeiro passo do UX.
Enfim, existem várias soluções, mas eis o que funcionou para mim no Magento 1.9 após muitas horas de pesquisa. Isso foi criado originalmente com base na resposta de Mike acima, mas troca file_get_contents por cURL, pois a função anterior geralmente gera erros de wrapper http, dependendo da configuração do servidor.
Crie seu próprio módulo Criando uma pasta / app / code / local / YourVendorName / ValidateCaptcha /
Na sua nova pasta ValidateCaptcha, adicione uma pasta Model com um arquivo Customer.php. Isso será usado para substituir o arquivo principal Customer.php fornecido pelo Magento.
Copie e cole este código:
Agora adicione uma pasta etc ao seu módulo e crie um config.xml com o seguinte:
Em seguida, você precisará adicionar o JS ao cabeçalho do tema. Em app / design / frontend / default / YOURTHEME / template / page / html / head.phtml, adicione isso no final. Se você não possui esse arquivo, copie-o dos arquivos base. Não substitua os arquivos base, no entanto. Faça sempre o seu!
Agora, em app / design / frontend / default / YOURTHEME / template / persistent / customer / form / register.phtml, adicione isso imediatamente antes da div definida pelo botão na parte inferior:
Quase pronto! Agora, basta registrar seu novo módulo criando um aplicativo / etc / modules / YourVendorName / ValidateCaptcha.xml com o seguinte:
Substitua YourVendorName todo com o que você quiser. Sua estrutura final deve ser algo como:
fonte
Para validar o captcha, crie um controlador de salvamento para salvar seus valores de formulário e também a validação.
Verifique se você substituiu a chave do site e a chave secreta nos códigos de amostra acima.
fonte
NID,
Seu snippit de script reCaptcha parece que vai funcionar, mas esclarecemos que ele foi inserido na fonte head.phtml do Magento? (ou o form.phtml?) deve ser colocado logo abaixo, fora do PHP padrão do Magento, no tipo verde, porque é a.
Pergunta ao entrar especialmente no php: é prática comum inseri-lo após a seção de comentários php imediatos que o Magento coloca no topo da maioria das páginas de origem dos modelos, como neste exemplo abaixo?
Código de isenção de responsabilidade do Magento aqui em tags php. COLOCAR O script de snippit AQUI aqui?
Além disso, o que torna esse código de verificação de resposta reCaptcha neste vídeo mais adequado para a estrutura de métodos do Magento: Este tutorial usa na primeira linha a linha $ reCaptcha = $ _POST ?
Alternativa à última pergunta: E se eu usar a versão php para fazer isso, a verificação de resposta reCaptcha será inserida no snippit de código php após a seção de comentários em verde do modelo padrão magento superior do php como esta
Algum código que eu não quero que apareçam mensagens no front-end porque o contactForm padrão já dá seus alertas em vermelho se o usuário não inserir todas as informações que ele irá dizer abaixo de cada campo, só quero que o reCaptcha funcione para esse contactForm. Mas de uma maneira que eu vou entender para uso futuro também. Seu caminho é criado por você como desenvolvedor ou programador?
fonte