Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2008, 14:15
Avatar de fcdragons
fcdragons
 
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 15 años, 8 meses
Puntos: 13
[APORTE] Sistema de comentarios para tu web

Bueno, como ya dije en mi tema del error en mi sistema de comentarios, si conseguia que funcionara crearia un aporte de sistema de comentarios, aqui lo teneis, y funciona perfectamente, totalmente comprobado!



Procederemos a crear las tablas llamadas 'comentario'

Código:
CREATE TABLE comentarios ( 
id bigint(7) DEFAULT NULL, 
id_noticia bigint(7) DEFAULT NULL, 
nick char(20) DEFAULT NULL, 
comentario char(250) DEFAULT NULL, 
KEY id (id) )
El campo de tipo entero id_noticia, el cual contendrá el id de la noticia a que corresponde.

Nota: Recordemos que en este caso suponemos que las noticias se llaman de la forma noticia.php?id=234, donde el id corresponde al id de la noticia en la base de datos.

Ahora debemos mostrar los comentarios, y tener un formulario de envío de comentarios en mi noticia.php y una aplicación que lo procese.

Nota: Solo voy a poner el código que muestra los comentarios y el formulario de envío, ya que de eso es que trata este tutorial y se supone que ya tienes tu sistema de noticias (o en lo que sea que lo vayas a implementar).


Paso 2 Este es el código que muestra los comentarios de la noticia actual (después el código para enviar los comentarios), recordemos que obtenemos el id de la noticia que lo hemos pasado por medio de noticia.php?id=123, primero el código, luego la explicación del código:

Código HTML:
<CENTER>
<TABLE CELLSPACING=1 CELLPADDING=1 WIDTH=300 BORDER=0 STYLE="border:1px solid black">
<TR>
<TD BGCOLOR="#FAFAFA"><CENTER><SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> .Comentarios De Los Usuarios.</SPAN></CENTER></TD>
</TR> 
<TR>
<TD HEIGHT=1 BGCOLOR=black></TD>
</TR> 
<TR>
<TD BGCOLOR="#FEFEFE">
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;">
<?
$resultComen = mysql_query("SELECT * FROM comentarios WHERE id_noticia='$id' ORDER BY id ASC");
while($rowComen = mysql_fetch_array($resultComen))
{
?> ;
<FONT COLOR=RED>
<B><? echo $rowComen["nick"]; ?></B>
</FONT>
:
<? echo $rowComen["comentario"]; ?>
<BR>
<?
}
mysql_free_result($resultComen);
?>
</SPAN>
</TD>
</TR>
</TABLE>
</CENTER> 
Aquí lo importante es la lectura de nuestros comentarios, lo que debemos hacer primero que todo es obtener los comentarios, pero solo queremos aquellos que correspondan a la noticia actual, para ello pedimos aquellos cuyo campo id_noticia corresponda con el id de la noticia actual (noticia.php?id=456):

Código PHP:
$resultComen mysql_query("SELECT * FROM comentarios WHERE id_noticia='$id' ORDER BY id ASC"); 
Y el resto es sencillo, simplemente imprimir en pantalla cada comentario, con su respectivo nick:

Código PHP:
while($rowComen = mysql_fetch_array($resultComen))
{
?> ;
<FONT COLOR=RED>
<B><? echo $rowComen["nick"]; ?></B>
</FONT>
:
<? echo $rowComen["comentario"]; ?>
<BR>
<?
}

Ahora necesitamos una aplicación que envié los comentarios a la tabla y un formulario de envío, el cual en este caso estará ubicado en la pagina de la noticia (noticia.php), y pasara por medio de un campo oculto el id de la noticia a la aplicación que se encargara de enviar el comentario.

Primero el código del formulario, utilizaremos un campo de tipo HIDDEN para pasar el id de la noticia a la aplicación que procesa el formulario (despues el código de dicha aplicación, llamaremos a nuestra aplicación nuevoComentario.php), este código debemos ponerlo en noticia.php:

Código HTML:
<CENTER>
<SPAN STYLE="font-size:11px;font-family:Tahoma;color:black;font-weight:bold"> 
.Enviar Comentario. 
</SPAN> 
</CENTER> 
<p> 
<FORM NAME="miFormu" ACTION="nuevoComentario.php" METHOD="post"> 
<INPUT TYPE="hidden" NAME="id" VALUE="<? echo $id; ?>"> 
Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20> 
<BR> 
Comentario: <INPUT TYPE="text" NAME="comentario" SIZE=28 MAXLENGTH=250>
 <BR> 
<INPUT TYPE="submit" CLASS="boton" VALUE="Enviar Comentario">
</FORM> 
Aquí cabe destacar el campo:

Código HTML:
<INPUT TYPE="hidden" NAME="id" VALUE="<? echo $id; ?>"> 
El cual recibe como valor el id de la noticia, ahora necesitamos la aplicación nuevoComentario.php que recibe el id que corresponde al id de la noticia y el nick y comentario correspondientes, solo pondré el código de la parte que lee los datos y introduce el comentario en la base de datos, de ti depende la conexión con la base de datos, dicho código es el siguiente:

Código PHP:
<?
if(isset($HTTP_POST_VARS["id"]) && 
isset(
$HTTP_POST_VARS["nick"]) && isset($HTTP_POST_VARS["comentario"])) {
if(
$HTTP_POST_VARS["comentario"] != "")
{
if(
$HTTP_POST_VARS["nick"] == "")
{
$nickNuevo "anonimo";
}
else
{
$nickNuevo $HTTP_POST_VARS["nick"];
}
$resultCom2 mysql_query("SELECT id FROM comentarios ORDER BY id DESC LIMIT 0,1");
$rowCom2 mysql_fetch_array($resultCom2);
$con $rowCom2["id"];
mysql_free_result($resultCom2); 


$con++;
$idNoticia $HTTP_POST_VARS["id"];
$comentarioNoticia $HTTP_POST_VARS["comentario"]; 


mysql_query("INSERT INTO comentarios VALUES
('$con','$idNoticia','$nickNuevo','$comentarioNo ticia')"
); 


echo 
'Comentario Enviado Con Exito.<BR>Espere Unos Segundos...
<SCRIPT LANGUAGE="javascript">window.location.href = "'
.getenv('HTTP_REFERER').'";</SCRIPT>';}  
else
{
echo 
"Debe Introducir Un Comentario.";
}
}
?>



Bueno pues espero que les haya gustado, y hasta el proximo aporte o duda :P


Tambien os doy un aviso:
ESTOS COMENTARIOS, SI LO PONES EN UNA PAGINA, Y COMENTAS, TAMBIEN SALDRA SI TIENES EN OTRA PAGINA ESTE SCRIPT, AQUI OS DEJO CON UN EJEMPLO:
http://tutorialeserik.iespana.es/alg...os-en-html.php

y este:

http://tutorialeserik.iespana.es/sis...e-usuarios.php

Si comentan en uno de los dos, y luego van al otro, veran que esta el comentario que pusisteis en la otra pagina
Estais avisados :P


Salu2

BY: fcdragons xD