halfar 5 Denunciar post Postado Outubro 9, 2011 como esta questão envolve javascript e php, então resolvi postar neste forum mesmo., porque o problema não esta no codigo js e sim no php. Não sei o que ocorre. Tenho um codigo javascript para pegar o conteudo que foi digitado na pesquisa do google. O codigo javascript funciona direitinho. Quando vou passar o codigo js para php, é passado o conteudo normalmente tambem, até aqui nenhum problema. O problema começa agora, quando vou gravar no banco de dados o conteudo da palavra chave, ao inves de gravar o conteudo, grava o codigo javascript. Veja o codigo todo abaixo. O problema está na parte em negrito no codigo abaixo. Ocorre que ao inves de gravar o conteudo da palavra chave, grava o proprio codigo, ou seja grava <script>document.write(palavrachave)</script> <script> keyword = function(){ alert("teste"); var dr=document.referrer,q,fq,goo=''; //se veio de uma busca google/yahoo/etc retorna qual a keyword if(dr.match(/ogle\.c|ahoo\.c|bing.c|usca.uol/i)){ if((q=dr.indexOf('q='))>0){ fq = dr.indexOf('&',q); goo = dr.substring(q+2,(fq>q?fq:dr.length)); } } return goo; } var palavrachave = keyword(); alert(palavrachave); </script> <?php $x palavra_chave = "<script>document.write(palavrachave)</script>"; aqui retorno o conteudo da palavra chave corretamente echo "palavra chave" . $palavra_chave; mas quando o conteudo da variavel $palavra_chave é gravado no banco de dados, grava o codigo <script>document.write(palavrachave)</script> $data_insercao = date("Y") . "-" . date("m") . "-" . date("d"); $referer = strip_tags($_SERVER["HTTP_REFERER"]); $aux = preg_replace("#http://#","",$referer); $pieces = explode ("/",$aux); $url = $pieces[0]; $sql="insert into visitas_internas " ."("; $sql=$sql."data,"; $sql=$sql."url,"; $sql=$sql."palavra_chave"; $sql=$sql.") values ("; $sql=$sql."'". $data_insercao ."', "; $sql=$sql."'". $url ."', "; $sql=$sql."'". $palavra_chave ."'"; $sql=$sql.")"; Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Leal 4 Denunciar post Postado Outubro 9, 2011 Você está atribuindo este valor "<script>document.write(palavrachave)</script>" à "$palavra_chave" então é o que ele vai gravar mesmo. Faça o seguinte, envie o conteúdo da "palavrachave" via query string, exemplo: document.location.href = "index.php?palavrachave=" + palavrachave; Ai no PHP você recebe ela com $_GET[ 'palavrachave' ] e grava no banco. :joia: Compartilhar este post Link para o post Compartilhar em outros sites
halfar 5 Denunciar post Postado Outubro 9, 2011 pois e, eu tambem entendi dessa forma como voce diz, pois afinal está tudo dentro de aspas. Mas este exemplo peguei na net, e para falar a verdade, uns dias atrás havia testado e pelo o que me lembro havia funcionado... A sua sugestão creio que não serve, pois estou pegando a palavra chave proveniente do google, quando usuario faz uma pesquisa, então chega no meu site, então recupero a palavra chave que o usuario digitou no google. complementando, na realidade funciona sim, se voce der um echo na variavel palavra_chave é exibido o conteudo da variavel corretamente. Mas quando jogo este conteudo no banco de dados, ai grava o codigo ("<script>document.write(palavrachave)</script>") ao inves do conteudo da variavel. Coisa de doido isso...to achando que o mysql nao interpreta...sei la... Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Leal 4 Denunciar post Postado Outubro 9, 2011 o que acontece eh que o php é server side e o js client side. isto funciona: palavra_chave = "<script>document.write(palavrachave)</script>"; pq eh a mesma coisa que tu escrever diretamente dentro do html... se tu quer gravar um valor pego através do javascript ou você envia para outra pagina os dados ou usa ajax... Compartilhar este post Link para o post Compartilhar em outros sites
halfar 5 Denunciar post Postado Outubro 10, 2011 Leonardo, conforme voce disse isto funciona: $palavra_chave = "<script>document.write(palavrachave)</script>"; Vamos supor que dentro de $palavra_chave tenha o conteudo BOM DIA. se eu escrever o codigo echo $palavra_chave, tudo bem, ele funciona corretamente, irá aparecer na tela BOM DIA. Agora veja só, dentro de $palavra_chave não contem BOM DIA? Mas quando vou gravar no bd o conteudo de $palavra_chave, ai ao inves de gravar BOM DIA, ele grava <script>document.write(palavrachave)</script>" É esse absurdo que nao etendo... Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Leal 4 Denunciar post Postado Outubro 10, 2011 Como eu havia dito: PHP é server-side... Você atribui esta string "<script>document.write(palavrachave)</script>" à $palavra_chave, ao contrário do que você queria atribuir que é "BOM DIA", pq "BOM DIA" é o conteúdo da variável javascript (client-side) e por isso aparece na tela, pq você esta imprimindo um script (<script>document.write(palavrachave)</script>)... Deu para entender? Por isso para resolver ou você posta para outra pagina via QueryString ou usa AJAX, para poder utilizar com o PHP. Compartilhar este post Link para o post Compartilhar em outros sites
halfar 5 Denunciar post Postado Outubro 18, 2011 Leonardo, ah...entendi...é um tipo de logica de programação que parece mais uma "pegadinha..." é que quando o php envia para o provedor, como dentro da variavel tem um codigo js, o provedor não interpreta o codigo js... bem, enfim, é mais ou menos isto... é a tal historia do server-side que voce disse... obrigado...vou ver se encontro uma solução... Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Leal 4 Denunciar post Postado Outubro 18, 2011 isso ai mesmo :lol: Qualquer coisa, se estiver dentro dos meus conhecimentos tentarei ajudar. ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
klebinhopk 0 Denunciar post Postado Abril 1, 2015 Bom dia galera a tempos venho procurando esse código, que pega a palavra digitada pelo usuário na busca do Google. Estou tentando pegar o código acima para fazer alguns testes mas não estou conseguindo se alguém puder me passar o código completo eu ficaria grato. :upset: Compartilhar este post Link para o post Compartilhar em outros sites
klebinhopk 0 Denunciar post Postado Abril 1, 2015 isso ai mesmo Qualquer coisa, se estiver dentro dos meus conhecimentos tentarei ajudar. como esta questão envolve javascript e php, então resolvi postar neste forum mesmo., porque o problema não esta no codigo js e sim no php. Não sei o que ocorre. Tenho um codigo javascript para pegar o conteudo que foi digitado na pesquisa do google. O codigo javascript funciona direitinho. Quando vou passar o codigo js para php, é passado o conteudo normalmente tambem, até aqui nenhum problema. O problema começa agora, quando vou gravar no banco de dados o conteudo da palavra chave, ao inves de gravar o conteudo, grava o codigo javascript. Veja o codigo todo abaixo. O problema está na parte em negrito no codigo abaixo. Ocorre que ao inves de gravar o conteudo da palavra chave, grava o proprio codigo, ou seja grava <script>document.write(palavrachave)</script> <script> keyword = function(){ alert("teste"); var dr=document.referrer,q,fq,goo=''; //se veio de uma busca google/yahoo/etc retorna qual a keyword if(dr.match(/ogle\.c|ahoo\.c|bing.c|usca.uol/i)){ if((q=dr.indexOf('q='))>0){ fq = dr.indexOf('&',q); goo = dr.substring(q+2,(fq>q?fq:dr.length)); } } return goo; } var palavrachave = keyword(); alert(palavrachave); </script> <?php $x palavra_chave = "<script>document.write(palavrachave)</script>"; aqui retorno o conteudo da palavra chave corretamente echo "palavra chave" . $palavra_chave; mas quando o conteudo da variavel $palavra_chave é gravado no banco de dados, grava o codigo <script>document.write(palavrachave)</script> $data_insercao = date("Y") . "-" . date("m") . "-" . date("d"); $referer = strip_tags($_SERVER["HTTP_REFERER"]); $aux = preg_replace("#http://#","",$referer); $pieces = explode ("/",$aux); $url = $pieces[0]; $sql="insert into visitas_internas " ."("; $sql=$sql."data,"; $sql=$sql."url,"; $sql=$sql."palavra_chave"; $sql=$sql.") values ("; $sql=$sql."'". $data_insercao ."', "; $sql=$sql."'". $url ."', "; $sql=$sql."'". $palavra_chave ."'"; $sql=$sql.")"; Bom dia galera a tempos venho procurando esse código, que pega a palavra digitada pelo usuário na busca do Google. Estou tentando pegar o código acima para fazer alguns testes mas não estou conseguindo se alguém puder me passar o código completo eu ficaria grato. :upset: Compartilhar este post Link para o post Compartilhar em outros sites