Ir para conteúdo

POWERED BY:

Arquivado

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

Annyh

[Resolvido] campo textarea mostrando um "0"

Recommended Posts

salve pessoal,

 

criei um formulário e estou validando com PHP, só que o textarea mostra dentro dele o número "0" zero...

 

o que pode ser?

 

tenho outros dois formulários que estão identicos a esse, mas só este mostrou o zero....

 

no inputs assim como no textarea estou estou mostrando os valores caso eles existam no value, assim:

<?php
  if(isset($comentario)){
     echo $comentario;
  }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim:

<span class="span-msn">
  <label>Digite seu comentário (*)</label>					
  <textarea name="comentario"><?php if(isset($comentario)){ echo $comentario; } ?></textarea>
</span>

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde você cria a variavel $comentario ?

 

teu servidor está com register_globals On ? se estiver desligue. [ Off ]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre o código completo então, pois com apenas este trecho, é impossível que achemos o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa...

<?php				
			// validação dos campos do formulário
			if (isset($_POST['enviar_comentario'])){
				$nome_comentario = trim($_POST['nome_comentario']);
				$email_comentario = trim($_POST['email_comentario']);
				$site_comentario = trim($_POST['site_comentario']);					
				$comentario = trim($_POST['comentario']);										

				if (empty($nome_comentario)){
					$erro = 'Digite seu nome!';
				} elseif (!filter_var($email_comentario, FILTER_VALIDATE_EMAIL)){
					$erro = 'Digite um email válido!';
				} elseif (!(empty($site_comentario)) AND (!filter_var($site_comentario, FILTER_VALIDATE_URL))){
					$erro = 'Informe uma url válida para o seu site!<br />ex: http://www.seusite.com.br';
				} elseif (empty($comentario)) {
					$erro = 'Digite seu comentário sobre a vídeo aula!';
				}					

				if (isset($erro)){
					echo '<span class="form-erro">'.$erro.'</span>';
				} else {
					echo '<span class="form-ok">Seu comentário foi enviado com sucesso!</span>';

					$sqlNovoComentario = 'INSERT INTO
								cb_comentarios
								(id_post, data, status, nome, email, site, comentario)
								VALUES
								(:id_post, NOW(), :status, :nome, :email, :site, :comentario)
								';											

					try {

						$qrNovoComentario = $conecta->prepare($sqlNovoComentario);
						$qrNovoComentario->bindValue(':id_post', $idVa, PDO::PARAM_INT);												
						$qrNovoComentario->bindValue(':status', 'aguardando', PDO::PARAM_STR);
						$qrNovoComentario->bindValue(':nome', $nome_comentario, PDO::PARAM_STR);
						$qrNovoComentario->bindValue(':email', $email_comentario, PDO::PARAM_STR);
						$qrNovoComentario->bindValue(':site', $site_comentario, PDO::PARAM_STR);						
						$qrNovoComentario->bindValue(':comentario', $comentario, PDO::PARAM_STR);
						$qrNovoComentario->execute();

					} catch (PDOException $erroNovoComentario){
						echo 'Erro ao cadastrar<br />'. $erroNovoComentario->getMessage();
					}					
					unset($nome_comentario, $email_comentario, $site_comentario, $comentario);					
				}				
			}
		?>
		<a name="primeiro-comentario"></a>
		<form action="#formulario" method="post">			
			<fieldset>
				<legend>Deixe seu comentário sobre a vídeo aula!</legend>
				<span class="largura">
					<label>Nome (*)</label>					 
					<input type="text" name="nome_comentario" value="<?php if(isset($nome_comentario)){ echo $nome_comentario; } ?>" />
				</span>
				<span style="float: right; width: 274px;">
					<label>Email (não será publicado)</label>					
					<input type="text" name="email_comentario" value="<?php if(isset($email_comentario)){ echo $email_comentario; } ?>" />
				</span>
				<span class="largura">
					<label>Web site</label>
					<input type="text" name="site_comentario" value="<?php if(isset($site_comentario)){ echo $site_comentario; } ?>" />
				</span>
				<span class="span-msn">
					<label>Digite seu comentário (*)</label>					
					<textarea name="comentario"><?php if(isset($comentario)){ echo $comentario; } ?></textarea>
				</span>
				<button name="enviar_comentario">enviar</button>
			</fieldset>			
		</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos pensar de maneira lógica, Annyh. Antes de enviar os valores para o banco de dados, você está verificando se os campos estão vazios. Se estiverem, você retorna erro, senão, insere os valores. Uma vez que o valor já existe no banco de dados, você não precisa fazer o isset na textarea.

 

Tente assim:

<textarea name="comentario"><?php echo $comentario; ?></textarea>

 

Foi a primeira coisa que o meu raciocínio me permitiu fazer.

Se não der certo, volte e poste.

 

Abraços! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, eu verifico se tais variáveis existem, se existirem mostra o valor, faço isso para o usuário não preencher o formulário todo caso não passe na validação.

 

e fiz como você sugeriu mas continuou a mesma coisa, o estranho que só neste formulário aconteceu isto, nos meus outros dois formulários ficou tudo certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hm, então a falha na verificação do seu script foi minha. De qualquer forma, se só nesse formulário está dando errado, pode ser o resultado trazido pelo banco, esse TRIM aí e/ou ainda um erro em suas variáveis.

 

Veja bem, o 0 PODE aparecer para resultados booleanos, ou seja, (NULL | FALSE).

 

Recomendo que você dê uma comparada com seus outros scripts que estão funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvi pessoal, apenas troquei o nome da variável, e o problema simplesmente desapareceu, e não existia outra variável com o mesmo nome, eu garanto.

 

valeu a ajuda.

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.