Femak 0 Denunciar post Postado Dezembro 4, 2010 Olá pessoal, instalei o fckeditor em meu site, para que o usuário possa editar os textos e salvar no banco...mas quando formato mudando a fonte do texto...ele nao salva no banco por causa das aspas... Tentei colocar replace para tirar as aspas duplas e simples..mas ai o codigo da formataçao nao funciona... alguem tem alguma soluçao??? o codigo está assim atualmente: $conteudo = $_POST['conteudo']; $conteudo = str_replace('\"',"","$conteudo"); $conteudo = str_replace("\'","","$conteudo"); $sql = "update `site`.`eventos` set `conteudo` = `$conteudo` where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); vlw Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 4, 2010 Strings com aspas símples você não precisa usar caracteres de scape em aspas duplas. O mesmo com aspas duplas. Tire essa barra invertida que não precisa. $conteudo = str_replace('"',"","$conteudo"); $conteudo = str_replace("'","","$conteudo"); Eu sempre nas querys que eu faço uso aspas simples que é mais fácil. Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 4, 2010 Strings com aspas símples você não precisa usar caracteres de scape em aspas duplas. O mesmo com aspas duplas. Tire essa barra invertida que não precisa. $conteudo = str_replace('"',"","$conteudo"); $conteudo = str_replace("'","","$conteudo"); Eu sempre nas querys que eu faço uso aspas simples que é mais fácil. continua sem mandar para o banco...o resto da formataçao vai...tipo...negrito..italico..tamanho...soh o estilo da fonte nao vai... esta assim: $conteudo = $_POST['conteudo']; $conteudo = str_replace('"',"","$conteudo"); $conteudo = str_replace("'","","$conteudo"); $sql = "update `site`.`eventos` set `conteudo` = '$conteudo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 5, 2010 Põe no seu script o script: echo $sql ; Depois posta o que apareceu e tenta colocar a sql no phpmyadmin e veja se aparece um erro. Sempre tente saber o que passa nas variaveis para descobrir onde é o erro. Use o mysql_escape_string() . Eu nem me liguei que tinha essa função. Me lembrei do nada. Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 5, 2010 Põe no seu script o script: echo $sql ; Depois posta o que apareceu e tenta colocar a sql no phpmyadmin e veja se aparece um erro. Sempre tente saber o que passa nas variaveis para descobrir onde é o erro. Use o mysql_escape_string() . Eu nem me liguei que tinha essa função. Me lembrei do nada. entao..jah testei direto no banco..e funciona...o problema é as aspas duplas tipo... update `site`.`eventos` set `conteudo` = "<span style="font-family: 'Comic Sans MS'; "><span courier=""><span comic="sans=">31 de outubro de 2010 </span></span></span>" where `eventos`.`id` = '$id' LIMIT 1 ; esse exemplo...do jeito que esta ele nao salva no mysql...mas se eu mudar todas as aspas duplas menos a primeira e a ultima, pra aspas simples ele funciona...mas aparentemente o replace nao funciona no codigo e nao subistitui as aspas... depois de algumas mudanças e testes com aspas acabei deixando o codigo assim: $conteudo = $_POST['conteudo']; $conteudo = str_replace('"',"","$conteudo"); $conteudo = str_replace("'","","$conteudo"); $sql = "update `site`.`eventos` set `conteudo` = '$conteudo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); mas continua sem salvar...=/ Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 5, 2010 E o mysql_escape_string()? Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 6, 2010 E o mysql_escape_string()? sou iniciante em php...aonde eu coloco o mysql_escape_string()? tentei fazer assim: $sql = "a string do banco"; $sql = mysql_escape_string($sql); nao sei se é o uso correto... Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 6, 2010 Use o mysql_real_escape_string(). É só por no $conteudo mysql_real_escape_string($conteudo) Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 6, 2010 Use o mysql_real_escape_string(). É só por no $conteudo mysql_real_escape_string($conteudo) ok..vou testar aqui e posto o resultado... nem funcionou... o conteudo sai assim 28 de outubro de 2010 \r\n nao sei o que ele substitui mas nao eh as aspas...=/ no update ele fica assim: update `paroquia sao pio x`.`eventos` set `conteudo` = \"$conteudo\" where `eventos`.`id` = \"$id\" LIMIT 1 ; vou mandar o codigo inteiro pra voce dar uma olhada... <? include "conn.php"; if (!isset($_POST["txttitulo"])) { } else { $titulo = $_POST['txttitulo']; $id = $_POST['htxtid']; $sql = "update `paroquia sao pio x`.`eventos` set `titulo` = '$titulo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); } ?> <? include "conn.php"; if (!isset($_POST['conteudo'])) { } else { $conteudo = $_POST['conteudo']; $conteudo = str_replace('"',"","$conteudo"); $conteudo = str_replace("'","","$conteudo"); $conteudo = mysql_real_escape_string($conteudo); echo $conteudo; $sql = "update `paroquia sao pio x`.`eventos` set `conteudo` = '$conteudo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $esc_sql = mysql_escape_string($sql); stripslashes($esc_sql); echo $esc_sql; $res = mysql_query($esc_sql); mysql_close($con); } ?> <? header("Location: eventos.php");?> Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Dezembro 7, 2010 Boa noite! achu q este teve o mesmo problema que o seu, da uma olhada no post do ELISEU olhe aqui Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 7, 2010 funcionoooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuu....\oooooo///////////////////// codigo funcionando... <? $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); echo $new; // <a href='test'>Test</a> include "conn.php"; if (!isset($_POST["txttitulo"])) { } else { $titulo = $_POST['txttitulo']; $id = $_POST['htxtid']; $sql = "update `paroquia sao pio x`.`eventos` set `titulo` = '$titulo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); } ?> <? include "conn.php"; if (!isset($_POST['conteudo'])) { } else { $conteudo = $_POST['conteudo']; $sql = "update `paroquia sao pio x`.`eventos` set `conteudo` = '$conteudo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); } ?> <? header("Location: eventos.php");?> vlw mesmo galera pela ajuda...voces sao 1000....^^ vo recomenda pro pessoal esse forum...vlw soh tem um problema...quando digito algum texto que contenha aspas...simples ou duplas...ele nao salva...=/ perece que nao resolveu totalmente...se formato muito o texto com cores...alinhamentos...negritos...etc...ele tambem nao salva no banco...=/ e preciso dessas formataçoes... Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 7, 2010 Você deve usar o mysql_real_scape_string() para escapar altomaticamente as aspas. Isto é: ao invéz de excluir as aspas escapa as aspas com a barra invertida. É extremamente importante que você use em todas as variaveis que vão para uma sql pois isso evita SQL Injection que é algo sério Nesse link tem um exemplo de injection attack e como usar essa função:http://php.net/manual/en/function.mysql-real-escape-string.php Não escape a sql se não vai dar erro. Escape somente o que vai para a sql. $conteudo = $_POST['conteudo']; $conteudo = mysql_real_escape_string($conteudo); echo $conteudo; $sql = "update `paroquia sao pio x`.`eventos` set `conteudo` = '$conteudo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); Lembre-se que SQL Injection é algo muito sério. Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 7, 2010 Você deve usar o mysql_real_scape_string() para escapar altomaticamente as aspas. Isto é: ao invéz de excluir as aspas escapa as aspas com a barra invertida. É extremamente importante que você use em todas as variaveis que vão para uma sql pois isso evita SQL Injection que é algo sério Nesse link tem um exemplo de injection attack e como usar essa função:http://php.net/manual/en/function.mysql-real-escape-string.php Não escape a sql se não vai dar erro. Escape somente o que vai para a sql. $conteudo = $_POST['conteudo']; $conteudo = mysql_real_escape_string($conteudo); echo $conteudo; $sql = "update `paroquia sao pio x`.`eventos` set `conteudo` = '$conteudo' where `eventos`.`id` = '$id' LIMIT 1 ;" ; $res = mysql_query($sql); mysql_close($con); Lembre-se que SQL Injection é algo muito sério. tudo bem ...entendi...vou testar.. pow galera....sem noçao....voces sao demais...vlw Daniel... entao no final das contas...o escape serve pra deixar de um jeito certo sem dar erros para a string ir para o servidor... soh o $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); echo $new; // <a href='test'>Test</a> que eu nao entendi muito bem... mesmo assim vlw mesmo...fais tempo que tava tentando resolver isso...nem meu professor de php conseguiu resolver..xDDD Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 7, 2010 Imagine que eu me cadastre e ponha no nome um script de uma imagem enorme. Outras pessoas vão ver a imagem como se fosse normal. Com o htmlspecialchars troca < e > por um codigo com finalidade parecida com a barra invertida do php. Tambem funciona com outros caracters como &. Eu jogava futmanager que e um jogo de browser. Tinha um chat em cada campeonato. Eu fazia o que queria: mandava mensagens coloridas. Colocava textos com onclick que abria alerts;mandava textos com tamanho enorme; tinha código que não dava certo e acabava tipo que bloqueando o chat . Mas o cara fez atualizações no layout, nas opções do jogo e também resolveu escapar esses caracteres. No chat e fora dele. Compartilhar este post Link para o post Compartilhar em outros sites
Femak 0 Denunciar post Postado Dezembro 7, 2010 Imagine que eu me cadastre e ponha no nome um script de uma imagem enorme. Outras pessoas vão ver a imagem como se fosse normal. Com o htmlspecialchars troca < e > por um codigo com finalidade parecida com a barra invertida do php. Tambem funciona com outros caracters como &. Eu jogava futmanager que e um jogo de browser. Tinha um chat em cada campeonato. Eu fazia o que queria: mandava mensagens coloridas. Colocava textos com onclick que abria alerts;mandava textos com tamanho enorme; tinha código que não dava certo e acabava tipo que bloqueando o chat . Mas o cara fez atualizações no layout, nas opções do jogo e também resolveu escapar esses caracteres. No chat e fora dele. entao tipo...que nem no exemplo que voce deu...<> vai ser salvo como outro codigo...com finalidade parecida e no modo visual nao afeta em nada...fica do jeito que eu editei mesmo??... PS: tem algum editor html que faça upload de imagens junto com o texto mais facil de configurar do que o fckeditor? PS: me adicionem no skype ai galera...skype somente sobre informatica...sou iniciante mas quem sabe posso ajudar em algo...^^...sempre em busca de conhecimento..xD Skype:femaktec Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Dezembro 8, 2010 Imagine que eu me cadastre e ponha no nome um script de uma imagem enorme. Outras pessoas vão ver a imagem como se fosse normal. Com o htmlspecialchars troca < e > por um codigo com finalidade parecida com a barra invertida do php. Tambem funciona com outros caracters como &. Eu jogava futmanager que e um jogo de browser. Tinha um chat em cada campeonato. Eu fazia o que queria: mandava mensagens coloridas. Colocava textos com onclick que abria alerts;mandava textos com tamanho enorme; tinha código que não dava certo e acabava tipo que bloqueando o chat . Mas o cara fez atualizações no layout, nas opções do jogo e também resolveu escapar esses caracteres. No chat e fora dele. entao tipo...que nem no exemplo que voce deu...<> vai ser salvo como outro codigo...com finalidade parecida e no modo visual nao afeta em nada...fica do jeito que eu editei mesmo??... PS: tem algum editor html que faça upload de imagens junto com o texto mais facil de configurar do que o fckeditor? PS: me adicionem no skype ai galera...skype somente sobre informatica...sou iniciante mas quem sabe posso ajudar em algo...^^...sempre em busca de conhecimento..xD Skype:femaktec O navegador não vai saber se os < e > é de tags html ou se é simplesmente < e >. As aspas são utilisadas nos parametros de tags. No site php.net tem informações detalhadas de funções de várias blibliotecas. Compartilhar este post Link para o post Compartilhar em outros sites