Ir para conteúdo

POWERED BY:

Arquivado

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

Femak

[Resolvido] Formatação de texto no mysql

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

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