Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gilberto Albino

Dados com Aspas ou Barras não aparecem dentro de input

Recommended Posts

Olá,

recentemente me deparei com um problema que não

tinha me ocorrido!

 

Estou fazendo um daqueles formulários para atualização de dados básicos

onde o valor de determinado, tipo, <INPUT value=<?=$row->imobiliaria?>,

vem do MYSQL.

 

Tudo bem até aí, é claro.

 

No entanto, eu não sei o porque, mas algo NÃO está imprimido o resultado

dentro de value deste INPUT, caso o valor tenha ", ', ou \, mesmo estejam escapadas!

 

Eu estou usando magic_quotes_gpc = off, no PHP 5.2.5 e MYSQL versão 5.0.51a com a biblioteca MYSQLI

 

Já testei algumas combinações possíveis e nada funcionou!

 

No meu caso, eu cadastrei um dado como -> teste de "input"

e ao imprimir no HTML saiu assim -> teste de

 

Ai eu escapei com addslashes e ficou assim no HTML -> \ (só a barra mesmo)

 

Usei real_scape e não funcionou tmb, magic_quotes_gpc on não funcionou.

 

 

Veja com ficaria tudo resumido para um campo em questão:

 

No arquivo para exibição

 

<?

$qry = "SELECT * FROM cadastro_imobiliaria WHERE id = ID_imobiliaria";

$res = $mysqli->query($qry);

while($row = $res->fetch_object()) {

?>

 

<form>

... bla bla bla

Razão social: <input type="text" name="razao_social" value="<?=$row->razao_social ?>" />

... bla bla bla

</form>

<? } ?>

 

Ai no Mysql eu Tenho os Dados cadastrados, e se eu cadastrar a razão social como "Imobiliaria" o resultado fica:

 

 

Razão social: {nada aparece}

 

 

se eu cadastrar com addslashes \"Imobiliaria\", o resultado fica

 

Razão social: \ {só a barra esquerda}

 

 

:wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

nem " e nem ' ??? n sei nao...

 

poe o codigo pra facilitar... =)

 

Não tem nada mais do que isto, o resto são outros campos fazendo a mesma coisa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tire a tag <form> de dentro do loop, senao você fica repetindo ela toda hora

 

e no caso ali use htmlentities()

 

<input type="text" name="razao_social" value="<?php echo htmlentities($row->razao_social); ?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

a tag <form> está fora do loop, que no caso é para pegar o valor do bd.

 

ja passei por isso axo que o teu problema é com o <? echo .... ?>

senao nao mostra mesmo

 

 

tenta aew flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao o problema nao é com as tags curta, se no php.ini dele esta setado short_open_tag = On nao tem problema

 

no caso ali a htmlentities resolve o problema

 

e como falei no exemplo dele a tag <form> esta dentro do while, que o correto tira-la para nao se repetir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha pessoal, tudo bem até ai, o detalhe é que se eu usar <?php echo htmlentities($row->razao_social); ?>

Vindo do Mysql ele tá imprimindo no HTML isto dentro do input:

 

<input type="text" name="razao_social" value="Imobiliaria "Teste"" />

 

logo o HTML não interpreta esta valor Depois de "imobiliaria ", porque não está escapando as aspas

a solução seria colocar htmlentities() diretamente na hora do cadastro, pra previnir isto.

 

Mas, por curiosidade, gostaria de saber se existe uma forma de contornar isto, mesmo assim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.