Ir para conteúdo

POWERED BY:

Arquivado

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

l1p3

inserir dados de uma textarea no MYsql

Recommended Posts

Pessoal, sou novo no PHP, eu nunca tive este problema, mais é o seguinte:

 

A tabela MYsql está configurada com formato TEXT, para receber dados da textarea, porém quando os dados são gravados no MYsql o texto vem faltando pedaço, sempre no final, ela nunca grava o texto inteiro, e olha que são textos pequenos...

 

o que é isso?

 

socorro ><

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você definiu largura máxima de caracteres na hora de criar o campo? tente deixar a largura em branco ou use o Longtext pra ver se funciona.

 

Cola seu código aqui também, só pra dar uma olhada em como ele faz o registro no MySQL.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Html

 <div class="comentarios">
     <div class="dentrocomentarios">
	  <form action="?gravar=comentarios" method="post">
		 <p class="textonormal">nome:</p>
		 <input type="text" name="nomeinformado" class="nometext" />				 
		 <p class="textonormal">Mensagem:</p>
		 <textarea name="mensageminformada" class="mensagemum" maxlength="700">
		 </textarea>
		  <input type="submit" value="Enviar" class="registrese"/>
            </form>
            <br />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou usar o Longtext ou mudar o tamanho do limite de caracteres no seu campo 'comentario' do MySQL? Seu código tá normal, pelo que vi aqui. Tenta mudar só o tamanho do limite de caracteres ou mudar pra Longtext pra ver se funciona.

 

Edit pra dizer que talvez fosse bom também você colocar no action o endereço completo da página que vai receber e enviar o comentário, em vez de usar o $_GET pra pegar a variável. Tenta colocar tudo pelo post sem o strip_tags, como em:

 

<!-- Comentarios-->
<div class="comentarios">
<div class="dentrocomentarios">
<form action="enviar_comentario.php" method="post">
  <p class="textonormal">nome:</p>
  <input type="text" name="nomeinformado" class="nometext" />
  <p class="textonormal">Mensagem:</p>
  <textarea name="mensageminformada" class="mensagemum" maxlength="700"></textarea>
  <input type="submit" value="Enviar" class="registrese"/>
</form>
<br />

 

e então a página que faz o registro:

 

<?php
include("bancodedados.php");
$db = mysql_connect($host, $login_db, $senha_db); //conectamos ao mysql
$basedados =  mysql_select_db($database); //conectamos ao database
 
$nomeinformado = $_POST['nomeinformado'];
$mensageminformada = $_POST['mensageminformada'];

$cadastrar = mysql_query("INSERT INTO comentarios(nome, comentario) VALUES('$nomeinformado', '$mensageminformada')", $db) or die(mysql_error());

echo "<script> window.location='index.php';</script>";
 
/** Solicitando comentarios do banco de dados*/
 
$buscarcomentarios = mysql_query("SELECT * FROM comentarios ORDER BY id DESC LIMIT 6", $db) or die(mysql_error());

/** Loop para aparecer os comentarios inseridos no array*/
 
while($comentarios = mysql_fetch_array($buscarcomentarios)){
 
/** comentarios encontrados no banco de dados*/
 
echo '<h1 class="titulocomentario">Nome: ' . $comentarios['nome'] . '</h1> <br />'; echo "<p class="textocomentario">Comentario: ' . $comentarios['comentario'] . '</p> <hr /><br />";
}
/** Encerrando conexão com banco de dados*/
mysql_close();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php 
  
     /** Conexão com banco de dados*/
     include("bancodedados.php");

     if($_GET['gravar'] == 'comentarios'){
						     
          /** Extrair dados pelo metodo post*/
	  $nomeinformado = strip_tags($_POST['nomeinformado']);						
	  $mensageminformada =  strip_tags($_POST['mensageminformada']);						
							 
	   /** Enserir comentarios no banco de dados*/
$enviarcomentarios = "INSERT INTO comentarios(nome, comentario) VALUES('$nomeinformado', '$mensageminformada')";


	    mysql_query($enviarcomentarios) or die(mysql_error());
							 
            echo "<script> window.location='index.php';</script>";
							 
    }
						 
     /** Solicitando comentarios do banco de dados*/
     $pesquisarcomentarios = "SELECT * FROM comentarios ORDER BY id DESC LIMIT 6";
                             $buscarcomentarios = mysql_query($pesquisarcomentarios) or die(mysql_error());

							 
    /** Loop para aparecer os comentarios inseridos no arrey*/
    while($comentarios = mysql_fetch_array($buscarcomentarios)){

						         
    /** comentarios encontrados no banco de dados*/
   echo '<h1 class="titulocomentario">Nome: ' . $comentarios['nome'] . '</h1> <br />';
							     
echo '<p class="textocomentario">Comentario: ' . $comentarios['comentario'] . '</p> <hr /><br />';
						 
     }
						 
						
						 
    /** Encerrando conexão com banco de dados*/ 
    mysql_close();
?>

 

não resolveu, quando mudei para LONGTEXT, ai que num gravo nenhum caractere...

 

Eu tava pensando, será que é alguma problema, com a formatação do texto? porque eu acho que se eu escrever na textarea, posso escrever um texto enorme que grava... Mais se eu colar um texto lá de outro site, grava só um pouco ou num grava nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu editei o comentário ali em cima, dá uma olhadinha só.. tenta escrever você mesmo um texto normal e salvar lá pra ver se funciona. Pode ser que copiando o texto de outro site ele venha com as tags HTML já e o strip_tags() pode estar cortando o texto por causa disso. Tenta enviar sem o strip_tags() ou tenta fazer como eu disse ali no edit, uma página separada só pra enviar o texto. Lá na página separada eu coloquei mais duas variáveis só pra especificar melhor a conexão com o DB e tirei o strip_tags(). Dá uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo obrigado, gostei da sua ideia de enviar tupo pelo método post, porém o erro continuou o mesmo



eu testei o mesmo código em outro servidor, e no outro servidor funcionou perfeitamente... Mais agora neste que eu preciso que o código funcione não deu não




servidor que não funcionou: http://dultranole.p.ht/index.php

servidor que funcionou: http://dultranole.gratisphphost.info/surf/



Eu só chego a pensar que o problema é com o pessoal do servidor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duvido muito que seja isso... eu mesmo uso essa codificação no meu banco de dados onde eu registro as postagens do meu site. E olha que eu uso Longtext e já enviei postagens com mais de 40.000 caracteres.

 

E script de postagem ainda está em funcionamento perfeito e a cada dia invento algo novo pra ele: http://www.pclife.carlossimas.com

 

Creio que seja o servidor passando por algum problema mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu entrei em contato com eles, obrigado pela ajuda, sou novo no PHP a cada projeto é uma dor de cabeça diferente rsrsrs,

brigadão mesmo por ter me emprestado seu tempo lol



Ei amigo Diego Rinno, mudei a codificação de "utf8_unicode_ci" para "latin1_swedish_ci",

 

e agora deu tudo certo lol, até quem fim \0/

 

deu certo mano, tomara que este tópico possa ajudar bastantes pessoas, obrigado por me ajudar _0/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fico feliz em ter ajudado rs
Eu também sou novo no PHP, na verdade. Só sou meio viciado, então passo horas por dia estudando rs.

Abraço e se precisar é só falar, estamos aqui pra ajudar o povo mesmo \o/

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que o meu código foi gerado em ANSI, e o BD não se despõe desta codificação, daí usando utf-8 ele quebra o texto no primeiro caractere não suportado tipo (é)... daí colocando LATIN ao envés de quebrar o texto ele vai simplesmente substituir o caractere não suportado por "?".

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.