vikcch Posted September 17, 2014 Report Share Posted September 17, 2014 Olá a todos, Tenho uma iFrame com uma imagem para partilhar no facebook dentro da pagina, isto porque não sei quais vão ser os valores para inserir na meta tag quando carrego a pagina principal.. só crio a iFrame quando já sei os valores para inserir na meta tag do iFrame.. Trabalha bem quando meto os valores directos na meta tag (dentro da iFrame), mas quando tento passa-los pelo $_GET não aceita os valores.. ex: funcional (pagina do iFrame) <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <title>titulo</title> <?php echo '<meta property="og:image" content="minha imagem" />'; echo "<meta property='og:title' content='meu titulo' />"; echo "<meta property='og:descripton' content='minha descricao' />"; echo '<meta property="og:description" content="website"/>'; ?> </head> <body> <?php // insere imagem com link ?> </body> </html> agora se fizer: $descricao = $_GET['descricao']; echo "<meta property='og:descripton' content='$descricao' />"; ou <meta property='og:descripton' content='<?php $descricao; ?>' /> não funciona... tambem tentei gravar na base de dados a descrição (com toda a linha da meta tag) e funciona mas apenas quando faço um SELECT com um ID em "hard code" se for buscar o id ao $_GET já nao funciona (tá a passar bem o $_GET['id'] que se fizer echo ele aparece) Já perdi umas poucas horas devolta disto e não consigo fazer funcionar... secalhar não é possivel... Alguem pode ajudar ? Obrigada desde já! Link to comment Share on other sites More sharing options...
alexviseu Posted September 17, 2014 Report Share Posted September 17, 2014 Antes de mais, precisas de fazer escape da variavel antes de a colocares no codigo HTML. http://php.net/manual/en/function.htmlspecialchars.php Nao sei o que queres dizer como "nao funciona" ou "nao aceita". Da' algum erro? Faz output do valor errado (se algum)? Da' erro PHP? Nestas situacoes e' importante ser o mais concreto e especifico possivel. Como e' que estas a passar os valores? Podes mostrar o codigo do <a> que estas a usar para o efeito? Qual e' o URL relativo (sem o dominio) onde essa pagina e' executada. (Verifica-o para possiveis erros). Link to comment Share on other sites More sharing options...
vikcch Posted September 17, 2014 Author Report Share Posted September 17, 2014 (edited) Obrigado por postares!! se eu usar essa funcao htmlspecialchars aparece escrito no iFrame a meta tag... (não é isso que quero) não dá erro nenhum.. é para o facebook tenho não posso testar em localhost... simplesmente ignora a linha.. <?php echo '<meta property="og:image" content="minha imagem" />'; echo "<meta property='og:title' content='meu titulo' />"; $descricao = $_GET['descricao']; echo $descricao // não uso esta linha mas se usar escreve o valor que quero // maneiras testadas echo "<meta property='og:descripton' content='$descricao' />"; // ignora a linha echo "<meta property='og:descripton' content=$descricao />"; // ignora a linha echo '<meta property="og:descripton" content=" ' . $descricao . ' " />"; // ignora a linha echo '<meta property="og:description" content="website"/>'; ?> se eu fizer: $content = 'content="minha descricao" '; echo '<meta property="og:descripton" ' . $content . ' />"; // funciona mas se eu fizer: $content = 'content=" '. $descricao ,' " '; ou $content = "content='$descricao' "; ou $content = "content=$descricao"; echo '<meta property="og:descripton" ' . $content . ' />"; // nao funciona o problema nao na tag <a> mas é este o code.. if (isset($_GET['fbShareId'])) : $fbShareId = $_GET['fbShareId']; echo '<a id="shareOnFB" href="https://www.facebook.com/sharer/sharer.php?u=www.meusite.com/fb-share1.php?id=' . $fbShareId . '" target="_blank"><img src="php/images/fbShare.png" alt="" style="border:0"/></a>'; endif; como falei até tentei ir buscar a linha completa da meta tag à base de base e apenhas funciona se no select eu colocar o id escrito directamente, o crawler do facebook ou lá o que é, deve conseguir ler que o valor da meta tag é de algum modo "variavel" e ignora a linha... Edited September 17, 2014 by vikcch Link to comment Share on other sites More sharing options...
alexviseu Posted September 17, 2014 Report Share Posted September 17, 2014 Nao vejo a descricao a ser passada no fb-share1.php. Provavelmente o PHP esta' a dar um erro mas nao esta' a ser mostrado. Experimenta adicionar: error_reporting(E_ALL); ini_set('display_errors', 1); Link to comment Share on other sites More sharing options...
vikcch Posted September 17, 2014 Author Report Share Posted September 17, 2014 A descrição assim como o fbShareId são passados na altura que crio a iFrame (na pagina principal).... Já consegui arranjar maneira de resolver o problema, mas não da melhor/correcta maneira... (até pode dar problemas) Usar a base de dados para guardar a descrição também era uma opção valida, mas como disse, só consigo aceder ao registo que tem a descrição se no SELECT inserir directamente o id (fbShareId), dava a entender que a fbShareId estava a ser mal passada, não apresenta nenhum erro, até escrevi mal o nome e aí já da erro.. Entra no IF mas não entra no WHILE: (codigo não testado, já apaguei o tinha feito) <?php if (isset($_GET['fbShareId'])) : $fbShareId = $_GET['fbShareId']; // conectar a db $query = "SELECT descricao FROM tabela WHERE id=$fbShareId LIMIT 1"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { $desc = $row['descricao']; echo "<meta property='og:description' content='$desc' />"; } endif; ?> e se nesta linha: $fbShareId = $_GET['fbShareId']; eu substituir o $_GET['fbShareId'] por 50 já tudo funciona.. É isso que não entendo qual o problema... Obrigado na mesma, e se alguém souber a solução correcta para isto agradecia a ajuda... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now