Ir para conteúdo

POWERED BY:

Arquivado

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

guidezin

[Resolvido] Sistema de comentarios

Recommended Posts

Olá a todos , sou iniciante no fórum e tbm no php..

Eu estou desenvolvendo um site só para estudo mesmos , e fiz um sistema de comentário onde o membro

tem uma caixa de texto que ele comenta , qndo envia vai para o database , e o comentário ja é puxado para ser lido na página..

Mas tem um problema , eu quero comentários diferente em paginas diferentes, o comentário que eu faço em 1 página , vai para todas as outras e eu quero que ele

fique só na pagina que eu comentei..

 

Será que alguem pode me ajudar?

 

Vou colocar o código aqui

 

Esse é o codigo que mostra as noticias (que coloquei o nome de fofoca) ler_fofocas.php

<br />
   <?php echo $row_lerfofoca['tituloFofocas']; ?></div>
</div>
<div id="divFofocas">
<!-- TinyMCE -->
<script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
<div id="statusFofoca"><span class="style1">Data :</span><?php echo $row_lerfofoca['dataFofocas']; ?>  <span class="style1">Essa fofoca possui :</span><?php echo $row_lerfofoca['cliquesFofocas']; ?> Visualizações | <span class="style1">Comentários</span> [Visualizar Comentários]</div>
<script type="text/javascript">
tinyMCE.init({
	mode : "textareas",
	theme : "simple"
});
</script>
<!-- /TinyMCE -->

 <br />
 <?php echo $row_lerfofoca['corpoFofocas']; ?>

 

esse é o formulario que o usuario envia o recado (esta na mesma página da noticia) ler_fofocas.php

<form name="form" method="post" action="envia_comentarios.php" enctype="multipart/form-data"> 
<table border="0">
<input name="idnoticia" type="hidden" value="<?php echo "$id"; ?>" />
<tr><td><b>Nome</b>:</td> <td><input type="text" name="nome" size="35"></td></tr> 
<tr><td><b>E-mail</b>:</td> <td><input type="text" value="nao sera mostrado" name="email" size="35"> </td></tr> 
<tr><td><b>Site/Blog</b>:</td> <td><input type="text" name="site" size="35"> </td></tr> 
<tr><td><b>Comentário</b>:</td> <td>	  <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
     <label>
     <textarea name="comentario" cols="50" rows="5" id="comentario"></textarea>
     </label>
  <br />
  <br />
     <br /> </td></tr>   
<tr>
 <td colspan="2" align="right"><div align="center"></div></td>
</tr>
<tr>
 <td colspan="2" align="right"><div align="center">
   <input type="submit" name="save" value="Submit" />
   <input type="reset" name="reset" value="Reset" />
 </div></td>
</tr>
</table>
</form> 

 

e esse é o envia_comentarios.php

 


<?php require_once('Connections/conn.php'); ?>
<?php

$id = $_GET['id'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];

$insert = mysql_query("INSERT INTO comentarios (idFofocas,nome,email,comentario) VALUES ('$id','$nome','$email','$comentario')")or die(mysql_error());
header

?>


 

Eu queria que os comentarios aparecessem logo abaixo da noticia..

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tu quer que na página todos ele mostre todos , tu faz assim SELECT * FROM tabela, se na pagina usuarios_cadastrados tu cria um campo no banco (digamos) de usu , ai SELECT * FROM tabela WHERE usu = 1 ai ele so mostra os que foram cadastrados para usuario.

 

Então o que tu deve fazer .. se foi o que eu entendi .. é usar o WHERE do SQL ;)

 

Abrçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não gremio .. axo que você entendeu errado

Não tem usuarios no meu site , qualquer um pode comentar

 

mais oque acontece é o seguinte.

 

Quando eu faço um comentario , o mesmo comentario vai para TODAS as noticias , oque eu quero é que esse comentário só fique na noticia que eu comentei

e não vá para as ouras , quero que cada noticia tenha seus próprios comentarios , entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim sim ... entao tu faz assim, cria um campo na tabela de comment ... quando a pessoa fizer o comentario em um POST,( cada POST tem seu id ) ele pega o id do POST e adicionar no campo comment , ai quando tu quiser exibir denovo o comentario, tu apenas manda ele pesquisar na tabela de comentarios WHERE comment = id_do_post ... entendeu ? caso nao .. pergunte

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom antes de mais nada , ja quero começar pedindo desculpas pela minha ignorancia , como eu disse esse é meu primeiro web site , e sou meio iniciante ainda ..

então vamos la

 

na tabela de comentarios eu tenho

ID (primary key, int , auto_increment) que é o ID do comentario

e tenho

idFofocas (int)

 

no caso, o idFofocas teria que ter o mesmo id da noticia, correto?

 

Mas , como eu faço para que quando a pessoa comente , o post ja puxe o id da noticia para o idFofocas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim, digamos que tu acesse a fofoca de id 2... vamos dizer que tu envia por GET o id para que na tua pagina de exibir as fofocas ele procurar a fofoca correta...

 

entao..

 

<?php
$id = $_GET["id"];

 

 

agora voce tem o id da fofoca, quando a pessoa comentar na fofoca, voce faz assim...

 

$sql = "INSERT INTO fofocas (idFofocas) VALUES ('" . $id . "')";

?>

 

voce faz os outros insert ok ? só estou mostrando como fazer com o id ...

 

Pronto, voce cadastrou o comentario, e esse comentario possui o id da fofoca, que quando clicar na pagina novamente , procurará pelos comentarios com o mesmo id ...

 

Entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então esses dois códigos que você passou eu vou colocar no envia_comentarios.php?

 

Ele esta ta seguinte forma :

 

<?php require_once('Connections/conn.php'); ?>
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];

$insert = mysql_query("INSERT INTO comentarios (nome,email,comentario) VALUES ('$nome','$email','$comentario')")or die(mysql_error());
header

?>

 

no caso , ficaria assim

 

<?php require_once('Connections/conn.php'); ?>
<?php

$id = $_GET['id'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];

$insert = mysql_query("INSERT INTO comentarios (idFofocas,nome,email,comentario) VALUES ('$id','$nome','$email','$comentario')")or die(mysql_error());
header

?>

 

correto? , se sim ja vou testar e te falo o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

gremio10 , não esta funcionando .. e eu acho que sei o problema mais n sei como arrumar

 

Ele registra os comentarios , o nome e talz , menos o idFofocas , e acho que é por causa disso

 

Quando eu estou lendo a noticia , a url fica :

 

http://localhost/portalrp/ler_fofocas.php?id=1

 

Porem qndo eu clico em enviar , ele carrega a url do envia_comentarios.php

 

http://localhost/portalrp/envia_comentarios.php

 

logo , não puxa a id da url anterior, eu axo que é isso , tem como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao faz assim ...

 

<?php

$id = $_GET[ïd"];

?>

 

<form action="" method="">

<input type="hidden" value="<?php echo $id ?>" name="id">

</form>

 

ai no teu envia_... tu puxa o POST do id

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda assim não puxou a id :S

 

o formulario de envio , esta assim

 

<table border="0">
<input name="idnoticia" type="hidden" value="<?php echo "$id"; ?>" />
<tr><td><b>Nome</b>:</td> <td><input type="text" name="nome" size="35"></td></tr> 
<tr><td><b>E-mail</b>:</td> <td><input type="text" value="nao sera mostrado" name="email" size="35"> </td></tr> 
<tr><td><b>Site/Blog</b>:</td> <td><input type="text" name="site" size="35"> </td></tr> 
<tr><td><b>Comentário</b>:</td> <td>	  <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
     <label>
     <textarea name="comentario" cols="50" rows="5" id="comentario"></textarea>
     </label>
  <br />
  <br />
     <br /> </td></tr>   
<tr>
 <td colspan="2" align="right"><div align="center">
   <input type="hidden" value="<?php echo $id ?>" name="id"/>
 </div></td>
</tr>
<tr>
 <td colspan="2" align="right"><div align="center">
   <input type="submit" name="save" value="Submit" />
   <input type="reset" name="reset" value="Reset" />
 </div></td>
</tr>
</table>

 

como pode ver , ja insiri o hiden field ali

<input type="hidden" value="<?php echo $id ?>" name="id"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta ae ó

 

<form name="form" method="post" action="envia_comentarios.php" enctype="multipart/form-data"> 
<table border="0">
<tr><td><b>Nome</b>:</td> <td><input type="text" name="nome" size="35"></td></tr> 
<tr><td><b>E-mail</b>:</td> <td><input type="text" value="nao sera mostrado" name="email" size="35"> </td></tr> 
<tr><td><b>Site/Blog</b>:</td> <td><input type="text" name="site" size="35"> </td></tr> 
<tr><td><b>Comentário</b>:</td> <td>	  <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
     <label>
     <textarea name="comentario" cols="50" rows="5" id="comentario"></textarea>
     </label>
  <br />
  <br />
     <br /> </td></tr>   
<tr>
 <td colspan="2" align="right"><div align="center">
   <input type="hidden" value="<?php echo "$id" ?>" name="id"/>
 </div></td>
</tr>
<tr>
 <td colspan="2" align="right"><div align="center">
   <input type="submit" name="save" value="Submit" />
   <input type="reset" name="reset" value="Reset" />
 </div></td>
</tr>
</table>
</form> 

 

mesmo com "" continua sem funcionar

Compartilhar este post


Link para o post
Compartilhar em outros sites

substitui o

 

<form name="form" method="post" action="envia_comentarios.php" enctype="multipart/form-data"> 

 

pelo

 

<form name="form" method="post" action="envia_comentarios.php?id=<?php echo $id ?>" enctype="multipart/form-data"> 

 

mas na url fica

 

localhost/portalrp/envia_comentarios.php?id=

 

não puxa id nenhum

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim , nao entendi

 

qndo eu estou lendo a noticia ele mostra a id normal

ler_fofocas.php?id=1

 

será que ao inves de mandar o action para o envia_comentarios.php

não tem como eu fazer pela própria o envio pela própria página das noticias?

 

ja to ficando sem ideias :S

 

 

@edit , olha

eu coloquei envia_comentarios.php?id=1

 

ele inseriu na tabela idFofocas o id 1, mas qndo coloca a váriavel $id ele nao puxa o id na url]

 

@edit 2

 

AEEEEE CONSSEGUI!

 

eu tava esquecendo de criar a variavel $id na página de noticias

 

muito obrigado mesmo gremio , agora vou ver se conssigo exibir os comentarios de cada notica.

 

MUITO OBRIGADO MESMO

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, faz assim ... quando tu puxar o id na variavel $id ... da um echo nela, ve se ela esta vazia ou se tem algum valor, se tiver faz assim..

 

$sql = "INSERT INTO comentarios (idFofocas,nome,email,comentario) VALUES ('".$id."','".$nome."','".$email."','".$comentario."')";

echo $sql;

 

ve se quando aparecer a query ele mostra o id

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.