Creacion de un sistema de comentarios en PHP
COMENTAR NOTICIA POR ID
comentar cada articulo de una pagina
un sistema de comentarios php de articulos o noticias por id
script php de comentarios
El siguiente script es ya probado y no contiene errores puedes adaptarlo atus necesidades quitando o agregando campos
creamos la tabla
CREATE TABLE `comments` (
`article_id` int(11) NOT NULL default ‘0’,
`id` int(11) NOT NULL auto_increment,
`page` varchar(255) NOT NULL default ”,
`username` varchar(255) NOT NULL default ‘Guest’,
`subject` varchar(255) NOT NULL default ”,
`contact` varchar(255) NOT NULL default ”,
`comment` text NOT NULL,
`ip` varchar(15) NOT NULL default ‘0’,
`date` varchar(255) NOT NULL default ”,
`time` varchar(11) NOT NULL default ”,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’comentarios Table’ AUTO_INCREMENT=3 ;
2.crea una base datos y nombrala………….. comentariosid
comentar.php
<?
//conectar a base de datos
//Conexión a la base de datos
$con = mysql_connect(“localhost”,”root”,”123″) or die (mysql_error());
mysql_select_db(“comentariosid”,$con) or die (mysql_error());
//query comentarios para esta pagina de este articulo
$inf = “SELECT * FROM `comments` WHERE page = ‘”.stripslashes($_SERVER[‘REQUEST_URI’]).”‘ ORDER BY time ASC”;
$info = mysql_query($inf);
if(!$info) die(mysql_error());
$info_rows = mysql_num_rows($info);
if($info_rows > 0) {
echo ‘<h5>Comments:</h5>’;
echo ‘<table width=”95%”>’;
while($info2 = mysql_fetch_object($info)) {
echo ‘<tr>’;
echo ‘<td>”‘.stripslashes($info2->subject).'” by: <a href=”‘.$info2->contact.'”>’.stripslashes($info2->username).'</a>
</td> <td>
@ ‘.date(‘h:i:s a’, $info2->time).’ on ‘.$info2->date.’
</td>’;
echo ‘</tr><tr>’;
echo ‘<td colspan=”2″> ‘.stripslashes($info2->comment).’ </td>’;
echo ‘</tr>’;
}//end while
echo ‘</table>’;
echo ‘<hr width=”95%” noshade>’;
} else echo ‘No hay comentarios para esta pagina. deja un comentario <br>’;
if(isset($_POST[‘submit’])) {
if(!addslashes($_POST[‘username’])) die(‘<u>ERROR:</u> debes poner nombre de usuario para dejar comentario.’);
if(!addslashes($_POST[‘contact’])) die(‘<u>ERROR:</u> escribe en este campo un metodo de contacto.’);
if(!addslashes($_POST[‘subject’])) die(‘<u>ERROR:</u> Escribe un sujeto para este campo.’);
if(!addslashes($_POST[‘comment’])) die(‘<u>ERROR:</u> no se puede agregar comentario sino se escribe uno!?’);
//esto es para un contacto valido
if(substr($_POST[‘contact’],0,7) != ‘mailto:’ && !strstr($_POST[‘contact’],’//’)) {
if(strstr($_POST[‘contact’],’@’))
$_POST[‘contact’] = “mailto:”.$_POST[‘contact’].””;
else
$_POST[‘contact’] = “http://”.$_POST[‘contact’].””;
} //end valid contact
//esto impide poner multiples post y hacer flooding…
$c = “SELECT * from `comments` WHERE ip = ‘”.$_SERVER[‘REMOTE_ADDR’].”‘”;
$c2 = mysql_query($c);
while($c3 = mysql_fetch_object($c2)) {
$difference = time() – $c3->time;
if($difference < 300) die(‘<u>ALERT:</u> ‘.$c3->username.’, You have already commented earlier; if you have a question, try the forums!<BR>’);
} //end while
//Agrehar comentario
$q =”INSERT INTO `comments` (article_id, page, date, time, username, ip, contact, subject, comment)
VALUES (‘”.$_GET[‘id’].”‘, ‘”.$_POST[‘page’].”‘, ‘”.$_POST[‘date’].”‘,'”.$_POST[‘time’].”‘, ‘”.addslashes(htmlspecialchars($_POST[‘username’])).”‘,
‘”.$_SERVER[‘REMOTE_ADDR’].”‘, ‘”.addslashes(htmlspecialchars($_POST[‘contact’])).”‘,
‘”.addslashes(htmlspecialchars($_POST[‘subject’])).”‘, ‘”.addslashes(htmlspecialchars(nl2br($_POST[‘comment’]))).”‘)”;
$q2 = mysql_query($q);
if(!$q2) die(mysql_error());
//refrescar la pagina para ver el nuevo comentario
header(‘Location: http://’ . $_SERVER[‘HTTP_HOST’] . $_POST[‘page’] . “#comments”);
} else { //muestra la forma
?>
<form name=”comments” action=”<? $_SERVER[‘PHP_SELF’]; ?>” method=”post”>
<input type=”hidden” name=”page” value=”<? echo($_SERVER[‘REQUEST_URI’]); ?>”>
<input type=”hidden” name=”date” value=”<? echo(date(“F j, Y.”)); ?>”>
<input type=”hidden” name=”time” value=”<? echo(time()); ?>”>
<table width=”90%” border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td>
Nombre:
</td>
<td><input name=”username” type=”text” size=”30″ value=””></td>
</tr>
<tr>
<td>
Contacto:
</td>
<td><input type=”text” name=”contact” size=”30″ value=””> <i>(email or url)</i></td>
</tr>
<td>
Sujeto:
</td>
<td><input type=”text” name=”subject” size=”30″ value=””></td>
</tr>
<tr>
<td>
Comentario:
</td>
<td><textarea name=”comment” cols=”45″ rows=”5″ wrap=”VIRTUAL”></textarea></td>
</tr>
<tr>
<td></td>
<td colspan=”2″><input type=”reset” value=”Resetear Campos”>
<input type=”submit” name=”submit” value=”Agregar Comentario”></td>
</tr>
</table>
</form>
<?
} // end else
?>
Gracias
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
Eliminareclente ayuda amigo
ResponderEliminarMe gustaría que dejases los archivos para descargar y ahorrar tiempo. Así ver el resultado final y tener los archivos en caso de que guste y usarlos.
ResponderEliminarEste comentario ha sido eliminado por el autor.
Eliminar¿Haha?
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminareste autor ha sido eliminado por el comentario.
ResponderEliminarsafas
ResponderEliminarsubire los archivos cuando pueda.. el script funciona...sepuede adaptar ya que el codigo es viejo.... con insert msqli y select de tabla. lo piesno hacer en nueva version
ResponderEliminarGracias y saludos. ¿Siempre se necesita una base de datos? ¿Hay alguna forma de que queden grabados los comentarios en la página?
ResponderEliminar