jueves, 9 de marzo de 2017

SISTEMA DE COMENTARIOS EN PHP

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://&#8221;.$_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://&#8217; . $_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
?>

12 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Me 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.

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. este autor ha sido eliminado por el comentario.

    ResponderEliminar
  5. subire 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

    ResponderEliminar
  6. Gracias y saludos. ¿Siempre se necesita una base de datos? ¿Hay alguna forma de que queden grabados los comentarios en la página?

    ResponderEliminar