Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte para Módulos e Caixas Laterais.
#7196
Pessoal, eu nem sei onde, mas consegui o modulo de indicação de produto que eu estava procurando.
Ocorre que consegui instalar mas qdo fui testar ele mostrar o formulario em popup , eu preencho e clico em ENVIAR mas não envia, a tela fica parada e nada acontece.
Imagem

Eu acredito que o problema seja no arquivo JS, mas não entendo nada de JS, será que alguém sabe me dizer???
Segue abaixo conteúdo do arquivo:
Código: Selecionar todos
 var navegador = navigator.userAgent.toLowerCase(); //Cria e atribui à variável global 'navegador' (em caracteres minúsculos) o nome e a versão do navegador
    var xmlhttp; //Cria uma variável global chamada 'xmlhttp'

    //Função que inicia o objeto XMLHttpRequest
    function objetoXML() {
       if (navegador.indexOf('msie') != -1) { //Internet Explorer
          var controle = (navegador.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; //Operador ternário que adiciona o objeto padrão do seu navegador (caso for o IE) à variável 'controle'
          try {
             xmlhttp = new ActiveXObject(controle); //Inicia o objeto no IE
          } catch (e) { }
       } else { //Firefox, Safari, Mozilla
          xmlhttp = new XMLHttpRequest(); //Inicia o objeto no Firefox, Safari, Mozilla
       }
    }

    //Função que envia o formulário
    function enviarForm(url, campos, destino) {
       var elemento = document.getElementById(destino); //Atribui à variável 'elemento' o elemento que irá receber a página postada
       objetoXML(); //Executa a função objetoXML()
       if (!xmlhttp) { //Se o objeto de 'xmlhttp' não estiver true
          elemento.innerHTML = 'Impossível iniciar o objeto XMLHttpRequest.'; //Insere no 'elemento' o texto atribuído
          return;
       } else { //Senão
          elemento.innerHTML = 'Carregando...'; //Insere no 'elemento' o texto atribuído
       }
       xmlhttp.onreadystatechange = function () {
           if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) { //Se a requisição estiver completada
              if (xmlhttp.status == 200) { //Se o status da requisição estiver OK
                 elemento.innerHTML = xmlhttp.responseText; //Insere no 'elemento' a página postada
              } else { //Senão
                 elemento.innerHMTL = 'Página não encontrada!'; //Insere no 'elemento' o texto atribuído
              }
           }
       }
       xmlhttp.open('POST', url+'?'+campos, true); //Abre a página que receberá os campos do formulário
       xmlhttp.send(campos); //Envia o formulário com dados da variável 'campos' (passado por parâmetro)
    }
#7235
Qual é o endereço online?

Aliás, no firefox quando dá um erro no script ele aparece um "X" logo abaixo do campo do google (tem 3 indicadores, conformidade de padroes, erros de css, erros de js). se vc clicar ele aparece o console q pode ajudar a entender o erro..
#7240
rochester escreveu:Qual é o endereço online?

Aliás, no firefox quando dá um erro no script ele aparece um "X" logo abaixo do campo do google (tem 3 indicadores, conformidade de padroes, erros de css, erros de js). se vc clicar ele aparece o console q pode ajudar a entender o erro..

Poderia me ajudar se eu soubesse algo de JS, mas acho dificil com meu nivel de conhecimento.. rsrs..
Segue o link, vê se consegue pls
http://sandrodealmeida.com.br/teste5/in ... duct_id=49
clique em "indique um amigo"

Obrigada, mais uma vez!
#7276
Então Julio, eu até achei que era isso tb, mas o arquivo processa.php está na mesma pasta que o form.php e o script.js
Então realmente não consegui.
Segue abaixo o arquivo processa.php pra vcs verem se acha o erro.
Código: Selecionar todos
<?php
    header("content-type: text/html; charset=iso-8859-1"); //Determina o tipo da codificação da página

    extract($_POST); //Extraí os dados do formulário

    $nome = ($seunome != "") ? $seunome : "Campo nome ficou vazio!"; //Verifica se algum nome foi digitado
    $email = ($seuemail != "") ? $seuemail : "Campo e-mail ficou vazio!"; //Verifica se algum email foi digitado
    $nomeami = ($nomeamigo != "") ? $nomeamigo : "Campo nome do amigo ficou vazio!"; //Verifica se algum email foi digitado
    $emailami = ($emailamigo != "") ? $emailamigo : "Campo e-mail do amigo ficou vazio!"; //Verifica se algum email foi digitado
    $idprod      = ($idprod);

    $data      = date("d/m/y");
    $hora      = date("H:i");   
    $link      = ("http://sandrodealmeida.com.br/teste5/index.php?route=product/product&product_id=");

    //aqui envia o e-mail para o Amigo
    mail ("$emailami",                       //email aonde o php vai enviar os dados do form
          "$nomeami",
          "$nomeami\n\nVocê recebeu a indicação de: $nome em $data\n\nPara conferir o produto visite o endereço abaixo:\n\n$link$idprod",
          "From: $seunome - Indicou um produto da SUA LOJA"
         );

    echo "<b>".$nome."</b><br>Sua indicação para: ".$nomeami." <br>Foi realizada com Sucesso!"; //Retorna com a resposta
    ?>
#7291
Renato Frota escreveu:Aqui funcionou. O script já foi corrigido? (obs: estou no IE8, em uma lan house)
Pois é Renato, depois que vi sua resposta resolvi fazer o teste no IE (eu nunca uso ele)
Bom, para minha surpresa lá funciona tudo direitinho.

O problema então é no Firefox/Mozilla: nesses carregadores o formulário trava em "carregando..."
Por isso volto a reiterar minhas suspeitas, o problema é no js, mas não conheço js.

Alguem pode dar uma luz??!!! O script está no topo deste tópico!!

Obrigada@
#7302
Minha sugestão (talvez besta) inicial é:

Troque POST por GET no seu código javascript e no formulário da página form.php.

Depois, troque $_POST por $_GET no código da página processa.php.

Quanto à função de envio da página processa.php, ela está enviando a mensagem com vários remetentes. Veja como chegou pra mim:
De:
RENATO@web611.uni5.net,
-@web611.uni5.net,
Indicou@web611.uni5.net,
um@web611.uni5.net,
produto@web611.uni5.net,
da@web611.uni5.net,
SUA@web611.uni5.net,
LOJA@web611.uni5.net
É um erro na função do envio, ela deve ser assim:
Código: Selecionar todos
mail ("$emailami",                       //email aonde o php vai enviar os dados do form
          "$seunome está te indicando um produto da loja X",
          "$nomeami\n\nVocê recebeu a indicação de: $nome em $data\n\nPara conferir o produto visite o endereço abaixo:\n\n$link$idprod",
          "From: $seunome"
         );
Você pode trocar o "Seu nome" no formulário por "Seu nome ou e-mail". Se o visitante preencher o próprio e-mail, ele será usado como endereço do remetente.
#7320
Pois é Renato, eu esqueci q tinha mudado o sript, já tinha verificado isso q vc falou e já tinha alterado.
Agora fiz só a troca do POST por GET e funcionou tudo redondinho!!!
Muitissimo obrigada!!

Agora se não for abuso, vc sabe como mudo o campo "De:" Pq o formulario está indo como nomedequemestáindicando@meuservidor e eu queria que fosse ou email da loja, é possivel?
faça um teste: http://sandrodealmeida.com.br/teste5/in ... duct_id=49

Outra coisa, como faço pra incluir um campo com uma frase no "Assunto" do email?? Queria que o email ficasse assim:

De: Nome loja e email loja
Para: Amigo2@hotmail...
Assunto: Amigo1 te indicou um produto da nossa loja!

Eu sei q tem como, mas não sei como... vc pode ajudar?!
#7342
m.lirangi escreveu:Pois é Renato, eu esqueci q tinha mudado o sript, já tinha verificado isso q vc falou e já tinha alterado.
Agora fiz só a troca do POST por GET e funcionou tudo redondinho!!!
Muitissimo obrigada!!
Que bom que deu certo!!
Agora se não for abuso, vc sabe como mudo o campo "De:" Pq o formulario está indo como nomedequemestáindicando@meuservidor e eu queria que fosse ou email da loja, é possivel?
faça um teste: http://sandrodealmeida.com.br/teste5/in ... duct_id=49

Outra coisa, como faço pra incluir um campo com uma frase no "Assunto" do email?? Queria que o email ficasse assim:

De: Nome loja e email loja
Para: Amigo2@hotmail...
Assunto: Amigo1 te indicou um produto da nossa loja!

Eu sei q tem como, mas não sei como... vc pode ajudar?!
Eu já dei algumas instruções sobre isso (inclusive um script já com o assunto do e-mail) no meu post acima, leia-o novamente.

A função mail é no formato mail ( para , assunto , mensagem [ , headers [ , parametros adicionais ] ] );

Nesse caso, só ficou faltando o e-mail de envio (que estava indo como "amigo@servidor.etc").

Para ficar do jeito que você quer, o script deve ser:
mail ("$emailami",
"$seunome está te indicando um produto da loja X",
"$nomeami\n\nVocê recebeu a indicação de: $nome em $data\n\nPara conferir o produto visite o endereço abaixo:\n\n$link$idprod",
'From: "Nome da Loja" <email@loja.com.br>'
);
Só lembrando que a troca do "From" de um e-mail funciona melhor se o envio for feito via SMTP (do contrário, a probabilidade de cair em SPAM é mais alta, a menos que seu servidor esteja muito bem configurado). Verifique as configurações do OpenCart para envio de e-mail.

Depois de alterar o script, responda aqui para eu testar. Eu aproveito e já te falo se chegou na caixa de entrada ou em SPAM.

Espero ter ajudado.

Atenciosamente,

Ola @felipesujf Se você extrai os arquiv[…]

extensção -> Módulos

Voltou ao normal sozinho

Olá Uso o OpenCart 2 e tenho algumas d&uac[…]

Night games. One night, no worries Real Women P[…]