Jump to content

Erro nos comentarios


ZeCarlos
 Share

Recommended Posts

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 by ZeCarlos
Link to comment
Share on other sites

                          //   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 ...

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

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

					   //   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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.