Annyh 4 Denunciar post Postado Maio 17, 2011 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
Justin Bieber 0 Denunciar post Postado Maio 17, 2011 Como você está fazendo no textarea ? Compartilhar este post Link para o post Compartilhar em outros sites
Annyh 4 Denunciar post Postado Maio 17, 2011 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
William Bruno 1501 Denunciar post Postado Maio 17, 2011 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
Annyh 4 Denunciar post Postado Maio 17, 2011 crio acima do formulário, e estou com register_globals = off... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Maio 17, 2011 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
Annyh 4 Denunciar post Postado Maio 17, 2011 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
Guilherme Oderdenge 42 Denunciar post Postado Maio 17, 2011 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
Annyh 4 Denunciar post Postado Maio 17, 2011 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
Guilherme Oderdenge 42 Denunciar post Postado Maio 17, 2011 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
Annyh 4 Denunciar post Postado Maio 20, 2011 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