Jump to content


Photo

"aspas" Indevidas


  • Faça o login para participar
8 replies to this topic

#1 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 08/02/2007, 14:49

Olá galera, boa tarde!

Sei que parece javascript, mas já vi isso em PHP.

Tenho o seguinte java script:

<a href=\"java script:void(0);\" title=\"Adicione em sua conta no del.icio.us\" onclick=\"void(window.open('http://del.icio.us/p...jump=close&url=' + encodeURIComponent('{NEWSID}') + '&title=' + encodeURIComponent('{NEWSTITLE}') + '&notes=' + encodeURIComponent('{NEWSBODY}'), 'delicious','toolbar=no,width=700,height=250'))\"><img src=\"/images/icons/delicious.png\" alt=\"{NEWSTITLE}\"></a>


Onde (óbvio) as tags entre {} são substituídas por conteúdo.
A tag {NEWSBODY} é substituída por um texto meio grandinho, e muitas das vezes nesse texto tem "", e no processo de substituição, onde há "", o início da " fecha o código, exemplo desse javascript pronto no site:

<a nicetitle="Adicione em sua conta no del.icio.us" href="java script:void(0);" onclick="void(window.open('http://del.icio.us/p...jump=close&url=' + encodeURIComponent('http://meusite.com/i....php?extend.001') + '&title=' + encodeURIComponent('O Título da Notícias') + '&notes=' + encodeURIComponent('AQUI QUE PEGA'), 'delicious','toolbar=no,width=700,height=400'))"><img src="/images/icons/delicious.png" alt="O Título da Notícia"></a>


AQUI QUE PEGA = Se um texto tem "", quando essas aspas começa termina o javascript antes da hora.

Tem algo em php que eu pare isso.
Muito grato
Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 08/02/2007, 15:19

Já tentou usar addslashes().

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 09/02/2007, 08:49

Caro Frenesi, eu tentei agora, mas não consegui.

$str = "{NEWSBODY}";

<a href=\"java script:void(0);\" title=\"Adicione em sua conta no del.icio.us\" onclick=\"void(window.open('http://del.icio.us/p...jump=close&url=' + encodeURIComponent('{NEWSID}') + '&title=' + encodeURIComponent('{NEWSTITLE}') + '&notes=' + encodeURIComponent('" . addslashes($str) . "'), 'delicious','toolbar=no,width=700,height=250'))\"><img src=\"/images/icons/delicious.png\" alt=\"{NEWSTITLE}\"></a>


Na verdade, ele retornou o mesmo resultado.

Tb tentei com um código que me indicaram:

function block_tags2($string){
$replaced_string = str_replace(chr(13), "", $string);
$replaced_string = str_replace("\n", "", $replaced_string);
$replaced_string = str_replace("'",'',$replaced_string);
return $replaced_string;
}

$row = "{NEWSBODY}";

<a href=\"java script:void(0);\" title=\"Adicione em sua conta no del.icio.us\" onclick=\"void(window.open('http://del.icio.us/p...jump=close&url=' + encodeURIComponent('{NEWSID}') + '&title=' + encodeURIComponent('{NEWSTITLE}') + '&notes=' + encodeURIComponent('" . (block_tags2($row)) . "'), 'delicious','toolbar=no,width=700,height=250'))\"><img src=\"/images/icons/delicious.png\" alt=\"{NEWSTITLE}\"></a>


Mas da mesma forma, retorna O MESMO PROBLEMA.

Por exemplo, no código fonte o texto que era para aparecer assim:
encodeURIComponent('Davi dizendo, "Espero uma criança". Quando Davi lê a nota')
Aparece assim:
encodeURIComponent('Davi dizendo, " espero="" uma="" criança="" .="" quando="" davi="" l="" a="" nota="" )

Agradeço muito a ajuda e aguardo possíveis dicas para solucionar esse problema.
Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.

#4 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 09/02/2007, 10:29

Tive um problema parecido

No meu caso resolvi com htmlentities()

$str = htmlentities($texto,ENT_QUOTES); // Converte as aspas simples e aspas duplas para entidades html ex: &quot; ( " )

Acho que resolve ;D

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#5 JoinTek

JoinTek

    24 Horas

  • Usuários
  • 454 posts
  • Sexo:Masculino
  • Localidade:Santarém, PA

Posted 09/02/2007, 10:46

str_replace("\"","&quot;", $texto);

[]'s

#6 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 09/02/2007, 10:50

str_replace("\"","&quot;", $texto);

[]'s


Tá ....
Já que é pra enfeitar ... dá pra usar até expressão regular :D

preg_replace("/\\x22/", "&quot;, $texto);

O que dá na mesma u.u'


(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#7 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 09/02/2007, 13:53

Olá,

Tenho certeza que um desses resolve meu problema, só não estou conseguindo dar a partida. Desculpem, sou leigo em php ainda.

No meu caso, como faria com um desses, já que preciso adicionar a tag no meio de um javascript. Meu problema está na {NEWSBODY}.

$str = htmlentities($texto,ENT_QUOTES);

<a href=\"java script:void(0);\" title=\"Adicione em sua conta no del.icio.us\" onclick=\"void(window.open('http://del.icio.us/p...jump=close&url=' + encodeURIComponent('{NEWSID}') + '&title=' + encodeURIComponent('{NEWSTITLE}') + '&notes=' + encodeURIComponent('{NEWSBODY}'), 'delicious','toolbar=no,width=700,height=250'))\"><img src=\"/images/icons/delicious.png\" alt=\"{NEWSTITLE}\"></a>


Não consegui entender como farei isso.

Tentei de diversas formas:

str_replace("\"","&quot;", $texto);
$texto = "{NEWSBODY}";

<a href=\"java script:void(0);\" title=\"Adicione em sua conta no del.icio.us\" onclick=\"void(window.open('http://del.icio.us/p...jump=close&url=' + encodeURIComponent('{NEWSID}') + '&title=' + encodeURIComponent('{NEWSTITLE}') + '&notes=' + encodeURIComponent('" . $texto . "'), 'delicious','toolbar=no,width=700,height=250'))\"><img src=\"/images/icons/delicious.png\" alt=\"{NEWSTITLE}\"></a>


Edição feita por: EduardoPG, 09/02/2007, 14:28.

Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.

#8 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 10/02/2007, 02:03

Bem vc deve decidir se isso é erro de JavaScript/HTML ou PHP já que está rolando 2 topicos seus com o mesmo erro (nas mesmas datas) sem resolver nada :P
http://forum.wmonlin...howtopic=170970

Mas assim tenta trocar em vez de usar "echo", "print" e essas coisas que ta juntado um monte de aspas por "sintaxe heredoc": http://www.php.net/m...ypes.string.php

Mas assim esse "encodeURIComponent" server para que?, cade a função por que na minhão opnião ele ta ai para fazer essa função .... de codificar antes de enviar ...

Ve como fica ele mais simplificado ... fica pelo menos melhor para ler ...
<?php

echo <<<PODIA_SER_ALGO_MAIS_SIMPLES_TOSQUERA
 <script language="JavaScript">
  function encodeURIComponent(textos) {
   return escape(textos);
  }
 
  function AbreJanela() {
   var url_toopen = "http://del.icio.us/post?v=4&noui&jump=close&url=" + encodeURIComponent('{NEWSID}')
   + "&title=" + encodeURIComponent('{NEWSTITLE}')
   + "&notes=" + encodeURIComponent('{NEWSBODY}');
   window.open(url_toopen, 'delicious','toolbar=no,width=700,height=250');
  }
 </script>

<a href="#" title="Adicione em sua conta no del.icio.us" onClick="java script:AbreJanela();">
<img src="/images/icons/delicious.png" alt="{NEWSTITLE}"></a>

PODIA_SER_ALGO_MAIS_SIMPLES_TOSQUERA;

?>

Edição feita por: sk15, 10/02/2007, 02:04.


#9 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 13/02/2007, 07:30

Bem vc deve decidir se isso é erro de JavaScript/HTML ou PHP já que está rolando 2 topicos seus com o mesmo erro (nas mesmas datas) sem resolver nada tongue.gif
http://forum.wmonlin...howtopic=170970

Bem, na verdade, eu gostaria de saber qual poderia ter a solução, por isso, postei nos dois...

Mas assim tenta trocar em vez de usar "echo", "print" e essas coisas que ta juntado um monte de aspas por "sintaxe heredoc": http://www.php.net/m...ypes.string.php

Mas assim esse "encodeURIComponent" server para que?, cade a função por que na minhão opnião ele ta ai para fazer essa função .... de codificar antes de enviar ...

Ve como fica ele mais simplificado ... fica pelo menos melhor para ler ...

Assim não da certo, porque numa página eu uso várias vezes o chamado para isso, e nesse código ele isola para apenas uma, se foi bem assim que eu entendi.

Aliás, mesmo assim não daria certo, porque ele me retorna "{NEWSTITLE}" ao invés do título que deveria aparecer.

Grande abraço!

Edição feita por: EduardoPG, 13/02/2007, 07:30.

Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq