ZeCarlos Posted May 22, 2014 Report Share Posted May 22, 2014 (edited) Boas, tenho este codigo de comentarios que esta a adicionar comentarios em branco sempre que entro dentro da pagina da noticia alguém me consegue dizer onde ta o erro ? tambem diz na pagina da noticia estes erros Notice: Undefined index: autor in Notice: Undefined index: comentario in Notice: Undefined index: email in Alguém me pode ajudar ? // Faz conexão com o Banco de Dados include('conectar.php'); // Seleciona o id da noticia $id = $_GET['id']; // Adiciona +1 de Visualizações a cada pessoa que acessar a noticia $views_db = mysql_query("SELECT * FROM news WHERE id = '$id'"); $row = mysql_fetch_array($views_db); $view = $row['views']; $views = $view + 1; $views_db = mysql_query("UPDATE news SET views = '$views' WHERE id = '$id'"); // Seleciona a noticia pelo id da página $selecionar_db = "SELECT * FROM news WHERE id = '$id'"; $final = mysql_query($selecionar_db); // Pega os valores da noticia while ($new=mysql_fetch_array($final)) { $id = $new["id"]; $foto_not=$new["foto_not"]; $titulo = $new["titulo"]; $categoria_id = $new["categoria"]; $autor = $new["autor"]; $views = $new["views"]; $texto = $new["texto"]; $date = $new["date"]; // Altera o Formato da data da noticia $date_news = strtotime($date); $data = date('d/m/Y', $date_news); $hora = date('H:i', $date_news); // Pega o número de Comentários que a noticia possui $comentarios_db = "SELECT * FROM comentarios WHERE noticia_id='$id'"; $comentarios_db = mysql_query($comentarios_db); $comentarios = mysql_num_rows($comentarios_db); // Faz a seleção da Categoria $categoria_db = "SELECT * FROM categorias WHERE id='$categoria_id'"; $categoria_resultado = mysql_query($categoria_db); $categoria_final = mysql_fetch_assoc($categoria_resultado); $categoria = $categoria_final['categoria']; echo "<img src='".$foto_not."' height=350px />" ; echo "<title>$titulo</title>"; echo "<title>$texto</title>"; echo "<h1>$titulo</h1><p><p>$texto</p>Postado por <b>$autor</b> em <b>$data</b> ás <b>$hora</b> - <b>$views</b> Visualizações | <b>$comentarios</b> Comentários</br>"; echo "<p class='red'>______________________________________________________________________________________________________________________________________________________________________</b></p>"; echo "<h3>$comentarios Comentários:</h3>"; } ?> <?php // Faz conexão com a tabela Comentários $id = $_GET['id']; $selecionar_db_comentarios = "SELECT * FROM comentarios WHERE noticia_id = '$id' ORDER BY id DESC"; $selecionar_db_comentarios_final = mysql_query($selecionar_db_comentarios); // Pega os valores da tabela 'comentarios' while ($comentario_db=mysql_fetch_array($selecionar_db_comentarios_final)) { $id = $comentario_db["id"]; $autor = $comentario_db["autor"]; $comentario = $comentario_db["comentario"]; $date = $comentario_db["date"]; echo "<b>$autor</b> em <b>$date</b> comentou:<p>$comentario</p>"; } ?> ______________________________________________________________________________________________________________________________________________________________________ <h3>Comentar:</h3> <form name="input" action="noticia.php?id=<?php echo $_GET['id']; ?>" method="post"> <label>Seu nome:</label> <input name="autor" class="text" /> <br> <label>Seu Email:</label> <input name="email" class="text" /> <br> <label>Comentário:</label> <br> <textarea name="comentario" rows="5" cols="50"></textarea> <br> <input type="submit" value="Enviar Comentário"> <?php // Mensagem caso os campos estejam vazios if (!empty($_POST) AND (empty($_POST['autor']) OR empty($_POST['email']) OR empty($_POST['comentario']) )) { echo "<font color=\"#ff0000\">Por Favor Preencha os campos Vazios</font>"; } else { if(isset($_POST["autor"])) { $autor = $_POST["autor"]; $comentario = $_POST["comentario"]; $email = $_POST["email"]; } if($autor == "" && $email == "" && $comentario == ""){} else { // Adiciona o Comentário na Noticia $comentario_add = "INSERT INTO comentarios (noticia_id, ip, autor, comentario,date,email) VALUES ('".addslashes(mysql_real_escape_string($_GET["id"]))."', '".addslashes(mysql_real_escape_string($_SERVER['REMOTE_ADDR']))."', '".addslashes(mysql_real_escape_string(strip_tags($_POST['autor'])))."', '".addslashes(mysql_real_escape_string(strip_tags($_POST['comentario'])))."', NOW(), '".addslashes(mysql_real_escape_string(strip_tags($_POST['email'])))."')"; $comentario_add = mysql_query($comentario_add) or die ("Erro ao Adicionar Comentário."); echo "Comentário Adicionado com sucesso | <a href=\"noticia.php?id=".$_GET['id']."\">Atualizar Página para ver seu comentário</a>"; } } ?> Cumps Edited May 22, 2014 by ZeCarlos Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted May 22, 2014 Report Share Posted May 22, 2014 // se if( $autor == "" // $autor for vazio && $email == "" // e $email for vazio && $comentario == "") { // e $comentário for vazio // não faz nada } else { // caso contrário // insere na BD } por outras palavras : para não fazer nada terás de ter os 3 elementos como vazios ... 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
odnav Posted May 22, 2014 Report Share Posted May 22, 2014 Não comeces um if se não lhe vais dar nada para fazer, para isso fazes if($autor != "" && $email != "" && $comentario != ""){// Adiciona o Comentário na Noticia $comentario_add = "INSERT INTO comentarios (noticia_id, ip, autor, comentario,date,email) VALUES ('".addslashes(mysql_real_escape_string($_GET["id"]))."', '".addslashes(mysql_real_escape_string($_SERVER['REMOTE_ADDR']))."', '".addslashes(mysql_real_escape_string(strip_tags($_POST['autor'])))."', '".addslashes(mysql_real_escape_string(strip_tags($_POST['comentario'])))."', NOW(), '".addslashes(mysql_real_escape_string(strip_tags($_POST['email'])))."')"; $comentario_add = mysql_query($comentario_add) or die ("Erro ao Adicionar Comentário."); echo "Comentário Adicionado com sucesso | <a href=\"noticia.php?id=".$_GET['id']."\">Atualizar Página para ver seu comentário</a>";} Link to comment Share on other sites More sharing options...
ZeCarlos Posted May 22, 2014 Author Report Share Posted May 22, 2014 // se if( $autor == "" // $autor for vazio && $email == "" // e $email for vazio && $comentario == "") { // e $comentário for vazio // não faz nada } else { // caso contrário // insere na BD } por outras palavras : para não fazer nada terás de ter os 3 elementos como vazios ... esse é o codigo que tenho, desculpa mas nao percebi a ideia, esta errado ou esta certo ? Não comeces um if se não lhe vais dar nada para fazer, para isso fazes if($autor != "" && $email != "" && $comentario != ""){// Adiciona o Comentário na Noticia $comentario_add = "INSERT INTO comentarios (noticia_id, ip, autor, comentario,date,email) VALUES ('".addslashes(mysql_real_escape_string($_GET["id"]))."', '".addslashes(mysql_real_escape_string($_SERVER['REMOTE_ADDR']))."', '".addslashes(mysql_real_escape_string(strip_tags($_POST['autor'])))."', '".addslashes(mysql_real_escape_string(strip_tags($_POST['comentario'])))."', NOW(), '".addslashes(mysql_real_escape_string(strip_tags($_POST['email'])))."')"; $comentario_add = mysql_query($comentario_add) or die ("Erro ao Adicionar Comentário."); echo "Comentário Adicionado com sucesso | <a href=\"noticia.php?id=".$_GET['id']."\">Atualizar Página para ver seu comentário</a>";} Obrigado os comentarios já nao estão a adicionar em branco agora apenas aparece que o "email" nao esta definido quando ao que vejo ele esta, algo de errado para aparecer isso ? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted May 22, 2014 Report Share Posted May 22, 2014 esse é o codigo que tenho, desculpa mas nao percebi a ideia, esta errado ou esta certo ? claro que é o código que tens !!! eu estava a explicar o que estava a acontecer !!! basta um dos elementos não for uma string vazia para inserir na BD 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now