Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Comportamento estranho ao inserir Texto com operadores rel


nelsoncsb

Pergunta

Olá boa gente !

Preciso imenso de saber como poder resolver um problema que é de enorme importância para garantir

a minha credibilidade na empresa onde trabalho.

Tenho na pagina do PHP o seguinte código :

include_once("../inc/conexao.php");

$sql="INSERT INTO blog (titulo,texto,imagem,data) VALUES

(' ". $titulo . " ', ' ". $texto . " ',' " . $ficheiro . " ' , ' " . $ano . " ', ' " . $data . " ' ) " );

mysql_query($sql) or die();

acontece que quando insiro um texto com operadores relacionais , parte do texto DEPOIS do operador relacional

não é posteriormente retornado !

Exemplo.

$texto="texto antes >depois";

Nesta caso quando faço "SELECT texto FROM blog ORDER BY data DESC" (o que possibilita ver as entradas cronologicamente e ordem descendente) , só consigo receber do MYSQL o texto "texto antes" ...

Pior ainda , o SELECT termina abruptamente sem receber mais registos, e ainda pior é que mesmo colocando um comando PHP

para ver todos os erros (error_reporting(E_ALL,E_WARNING,E_NOTICE);) não é retornado nehum erro!!!

alguém me ajude pleaseeee!!??

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Putzzz... ta um pouco confuzo isso awe hein!?

Dexa eu tentar entender...

$sql="INSERT INTO blog (titulo,texto,imagem,data) VALUES

(' ". $titulo . " ', ' ". $texto . " ',' " . $ficheiro . " ' , ' " . $ano . " ', ' " . $data . " ' ) " );

pelo visto ta faltando setar o "ficheiro" e "ano".

Perai, você inseri um texto vamo dizer:

"Script brasil é muito boa em soluções de meus problemas."

mas só armazena uma parte, exemplo:

"script brasil é muito"

Se for isso, você deve analizar primeiro o tipo de armazenamento de tal atributo, deve ser "text" ou "longtext", lembrando que "text" faz inserções de 255 em 255 caracteres, agora o "longtext" faz inserções com mais caracteres, sendo ideal para maiores conteudos!

Se não entendi direito ou não consegui ajudar você em sua dúvida, tente explicar melhor, que está meio confuzo suas palavras!

Abração!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Linneker.

O código está bem setado . eu que o coloquei aqui erradamente:

è este:

include_once("../inc/conexao.php");

$sql="INSERT INTO blog (titulo,texto,imagem,data) VALUES

(' ". $titulo . " ', ' ". $texto . " ',' " . $ficheiro . " ' , ' " . $data . " ' ) " );

mysql_query($sql) or die();

o campo titulo é VARCHAR(50)

o campo texto é LONGTEXT

o campo imagem é VARCHAR - endereço para a imagem

o campo data é DATE

Bom , é assim tudo funciona correctamente na perfeição mas quando num INSERT , insiro um operador relacional já não!!!!!:S

Faz o seguinte experimenta no teu PC postar um texto com um operador relacional (">") e verifica depois

ao fazeres um SELECT se TU consegues visualizar todo o texto??

Ou seja tipo:

Se no código atrás instanciar a variavel $TEXTO ="antes >depois" ou $TITULO="antes >depois" , e muito

embora pelo phpmyadmin consiga ver "antes >depois"

acontece que correndo este codigo abaixo , não se retorna TODA A STRING!!Apenas "antes >"

$sql="SELECT * FROM blog ORDER BY data DESC";

$result=mysql_query($sql) or die();

$num_res=mysql_num_rows($result);

$expressao="";

if ($num_res>0)

{

$i=0;

while ($usu = mysql_fetch_array($result4))

{

$i++;

$expressao.="<br> titulo". $i ."=".$usu['titulo']."&texto=. $i ."=".$usu['texto]."&";

};

}

Será que que isto tem a ver com SQL INJECTTION ? Será que tenho de fazer o ESCAPE das strings ??

:S pls help!

Editado por nelsoncsb
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...