jsemde 0 Denunciar post Postado Junho 4, 2015 Olá, Quando utilizo o addslashes ele coloca barra invertida em aspas simples, e o stripslashes desfaz a ação. Dúvida, porque o stripslashes não funciona no imput do formulario? Exemplo: $titulo = stripslashes($linha->titulo); <input type='text' name='titulo_categoria' size='42' maxlength='50' value='$titulo'> // onde existe a palavra marca d'agua no imput fica marca d, o restante some! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 4, 2015 Mostre um exemplo real de onde o problema ocorre. Isso tem cara de ser "problema" com informações salvas no banco, não em formulário. Ao usar stripslashes(), a aspas simples do "marca d'água" é entendeda como o fim da string pelo SQL, salvando apenas "marca d". Compartilhar este post Link para o post Compartilhar em outros sites
jsemde 0 Denunciar post Postado Junho 5, 2015 Mostre um exemplo real de onde o problema ocorre. Isso tem cara de ser "problema" com informações salvas no banco, não em formulário. Ao usar stripslashes(), a aspas simples do "marca d'água" é entendeda como o fim da string pelo SQL, salvando apenas "marca d". Por exemplo: Na tabela o valor fica armazenado corretamente quando uso o addslashes tipo " marca d\'agua ". O campo é tipo VARCHAR 250 Então na hora de lista também funciona sem problemas $con_cat = $conexao1->prepare("SELECT * FROM categoria"); $con_cat->execute(); while ($linha = $con_cat->fetch(PDO::FETCH_OBJ)) { $titulo= $linha->titulo; echo " $titulo"; } Só ocorre o problema quando uso o valor no imput do formulario tipo echo "<form action='categoriaAltera.php' method='post' name='form1'>"; echo "<tr>"; echo "<td width='500'><div align='left'><input type='text' name='titulo' size='42' maxlength='50' value='$titulo'></div></td>"; echo "</tr>"; echo "<tr>"; echo "<td><div align='center'><input type='submit' name='Submit' value='Alterar Dados'><input type='reset' name='Submit' value='Limpar Campos'></div><td>"; echo "</tr>"; echo "</form>"; No fomulario fica assim " marca d " tudo some depois do apostrofe Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 5, 2015 Você usa aspas simples nos atributos HTML. Ou seja, o próprio HTML interepreta errado. Ele vê o "'" do "marca d'água" e acha que é o fim do atributo value. Veja o código fonte gerado e o "'água" estará lá, mas como se fosse um atributo (inválido) da tag input Use addslashes pra exibir ou use aspas duplas Compartilhar este post Link para o post Compartilhar em outros sites
jsemde 0 Denunciar post Postado Junho 5, 2015 Você usa aspas simples nos atributos HTML. Ou seja, o próprio HTML interepreta errado. Ele vê o "'" do "marca d'água" e acha que é o fim do atributo value. Veja o código fonte gerado e o "'água" estará lá, mas como se fosse um atributo (inválido) da tag input Use addslashes pra exibir ou use aspas duplas Valeu Beraldo, deu certo. Muito obrigado. Onde estava assim: <input type='text' name='titulo' size='42' maxlength='50' value='$titulo'> Alterei para: <input type=\"text\" name=\"titulo\" size=\"42\" maxlength=\"50\" value=\"$titulo\"> Coloquei aspas em todo o formulário. Tópido encerrado! Compartilhar este post Link para o post Compartilhar em outros sites