Sistema de comentarios php mysql

Este sistema de comentarios es adaptable a cualquier web podemos cambiar el estilo y la forma de cómo presentar los comentarios dependiendo de las imagenes que les agreguemos.

Antes que nada deberás ordenar los archivos en tu localhost de forma que cada carpeta contenga ordenadamente sus archivos diferenciados por categoria ..

Para la utilización de este sistema de comentarios necesitaremos de los siguientes archivos:

Archivos para la utilización de este sistema :

config.php

index.php

estilocomentarios.css

una tabla llamada comentarios

Breve explicación suponiendo un poco de conocimiento por parte del lector de cómo usar php….

Pues bien lo primero que necesitamos a mano es una base de datos esta deberá contener la tabla llamada comentarios o si gustas podrás poner el nombre que elijas para este tutorial dejemoslo así la tabla es la siguiente..

CREATE TABLE `comentarios` (
  `post_id` int(5) NOT NULL auto_increment,
  `publicado` varchar(10) NOT NULL,
  `fecha` date NOT NULL,
  `name` varchar(25) NOT NULL,
  `email` varchar(50) NOT NULL,
  `comentarios` text NOT NULL,
  `estado` varchar(4) NOT NULL default 'SR',
  UNIQUE KEY `post_id` (`post_id`,`publicado`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Una vez creado la tabla tendremos que crear el archivo config.php este contendrá la configuración respectiva para conectarnos a la base de datos y posteriormente a la tabla :


<?
$servername='localhost';   //dominio o dejar en localhost
$dbusername='';  //*****cambiar usuario de phpmyadmin*****//
$dbpassword='';  //*****cambiar password de phpmyadmin*****//
$dbname='';  //*****nombre de la base de datos usada*****//


connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("No se puede conectar a MySQL");}
mysql_select_db("$dbname",$link) or die ("No se puede abrir base de datos".mysql_error());
}
?>

El estilo lo llamaremos estilocomentarios.css y le daremos el siguiente aspecto como muestra el demo..

/*
 * Sistema de comentarios php mysql:
 * Php mysql
 * Copyright 2015 bloguero-ec.
 * Usese cómo mas le convenga no elimine estas líneas (http://www.bloguero-ec.com)
*/
body {
	background-color: #FFFFE6;
    margin:0;
	padding:0;
}
.EstiloROJO {
	color: #FF0000;
}
.TODO {
	width: 600px;
	margin: auto;
	float:center;
}
.RESULTADO {
	padding: 10px;
	color: #FF0000;
	margin-bottom: 10px;  /*muestra el contenido de los errores*/
	background-color: #FFECEC;
	border: 1px solid #FF0000;
}
.FORMULARIO {
	padding: 10px;
	margin-bottom: 10px;
}
.TITULO{
	font-family: "Myriad Pro";
    font-weight:normal;
    font-size:20px;
	color: #FF99CC;
	width: auto;
	margin: auto;
	padding: 10px;
	border:1px solid #FF99CC;
	border-radius:6px;
	text-align: center;
	margin-bottom: 10px;
}
.CASILLAS{
	color: #FF99CC;
	width: auto;
	margin: auto;
	padding: 10px;
	text-align: left;
	margin-bottom: 10px;
	margin-left: 120px;
}
.fondocasillausuario {
	border: 1px solid #FF99CC;
	border-radius:6px;
	padding: 4px;
	margin-bottom: 3px;
	background:#FFF2FF;
}
.BOTONcomentarioenviar{
	cursor:pointer;
	border: 1px solid #FF99CC;
	padding: 4px;
	width: 150px;
	border-radius:6px;

}
.BOTONcomentarioborrar{
	cursor:pointer;
	border: 1px solid #FF99CC;
	padding: 4px;
	color:#FF0000;
	width: 150px;;
	border-radius:6px;

}
#comentarios div#comentarioscontent{
    width:960px;
	margin:0 auto;
	overflow:hidden;
	background-image:none;
	height:auto;
	overflow:hidden;
  }
  #comentarios #comentarioscontent .comments ul li{
     width:300px; 
	 margin:0 0 30px 0;
	 float:left;
	 line-height:25px;
	 height:auto;
  } 
  #comentarios #comentarioscontent .comments ul li a{
     text-decoration:none;
  }
  #comentarios #comentarioscontent .comments ul li h2{
    font-family:"Myriad Pro";
    font-size:20px;
	margin:0;
	}
  #comentarios #comentarioscontent .comments ul li  p{
    font-family:"Myriad Pro";
	font-size:14px;
	text-align:justify; 
	color:#7f7154;
  }
    #comentarios #comentarioscontent .comments ul.articles{
		list-tyle-type:none;
		margin:20px 0 0 0;
		padding:0;
	}
	#comentarios #comentarioscontent .comments ul.articles li{
	  padding:0;
	  clear:both;
	  width:640px;
	}
	#comentarios #comentarioscontent .comments ul.articles li {
	  background:url("images/bg-blog-bottom-curve.png");
	  background-position: left bottom;
	  background-repeat:no-repeat;
	}
	#comentarios #comentarioscontent .comments ul.articles li div{
	 height:98px;
	 line-height:78px;
	 background:url("images/bg-blog-heading.png");
	 background-position: top center;
	 background-repeat:no-repeat;
	}
	#comentarios #comentarioscontent .comments ul.articles li p{
	 background:url("images/bg-blog-content.png");
	 background-position: left;
	 background-repeat:repeat-y;
	 margin:-10px 10px 8px 0;
	 padding: 0 10px 0 48px;
	 font-family:"Myriad Pro";
	 font-size:14px;
	}
	#comentarios #comentarioscontent .comments ul.articles li div span{
	   float:left;
	   width:110px;
	   text-align:center;
	   color:#ffffff;
	   font-family:"Myriad Pro";
	   font-size:12px;
	}
	#comentarios #comentarioscontent .comments ul.articles li div h2{
	   float:left;
	   width:450px;
	   color:#FF99CC;
	   text-transform:uppercase;
	   font-weight:normal;
	   font-size:20px;
	}
	#comentarios #comentarioscontent .comments ul.articles li   a.heart{
	  background:url("images/icons.png");
	  background-position: 5px -374px;
	  background-repeat:no-repeat;
	  display:inline-block;  
	  width:20px;
	  height:20px;
	  margin-top:25px;
	  
	  /*
	  *margin-top:0px; 
	  */
	}
	#comentarios #comentarioscontent .comments ul.articles li  a.facebook{
	 background:url("images/icons.png");
	 background-position: 0 -124px;
     background-repeat:no-repeat;
	  display:inline-block;  
	  width:20px;
	  height:20px;
	   /*
	   *margin-top:0px;
	   */
	}
	#comentarios #comentarioscontent .comments ul.articles li  a.twitter{
	  background:url("images/icons.png");
	  background-position: 0 -534px;
	  background-repeat:no-repeat;
	  display:inline-block;  
	  width:20px;
	  height:20px;
	  /*
	   *margin-top:0px;
	   */
	}

El index.php que crearemos le daremos el siguiente aspecto para mostrar el resultado deseado , colocamos estas líneas dentro de body…

<?

$publicado="Publicado";
require "config.php";
?>
<!--******************************************* -->
<!--******************************************* -->
<div class="TODO">
<div id="comentarios">
<div id="comentarioscontent">
<div class="comments">
<ul class="articles">									

<?
$actualiza="<META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'>";//actualizamos la pagina
$q=mysql_query("select name, comentarios,fecha from comentarios where publicado='$publicado' and estado='OK' order by fecha ASC ");
while($nt=mysql_fetch_array($q)){ $comentarios=nl2br($nt['comentarios']);
echo "<li>";
echo "<div>";
echo "<span> ".date("d-M-y",strtotime($nt['fecha']))."</span>";
echo "<h2><strong>$nt[name]</strong></h2>";							
echo '<a class="heart" href="index.php"> </a>';
echo '<a class="twitter" href="http://twiter.com/victorquimis"> </a>';
echo '<a class="facebook" href="index.php"> </a>';
echo "</div>";
echo "<p>$comentarios</p>";
}
echo"</li>";

?>
</ul>
</div>
</div>
</div>
									    
<!--******************************************* -->
<!--******************************************* -->
<div class="RESULTADO">
<?
@$todo=$_POST['todo'];
if(isset($todo) and $todo=="post_comment"){

$name=$_POST['name'];
$name=mysql_real_escape_string($name);
$email=$_POST['email'];
$email=mysql_real_escape_string($email);
$comentarios=$_POST['comentarios'];
$comentarios=mysql_real_escape_string($comentarios);

$estado = "OK";
$msg="";

if( strlen($name) <3 or strlen($name) > 25){
$msg=$msg."Su nombre debe tener más de 3 caracteres y menos de 25. <BR>";
$estado= "NOTOK";}					

if( strlen($comentarios) <3 ){
$msg=$msg."Su comentario debe tener más de 3 caracteres por lo menos.<BR>";
$estado= "NOTOK";}	
//****************************
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email)){
$msg=$msg."Su email, no es correcto.<BR>";
$estado= "NOTOK";}			
//****************************


if($estado"OK"){ 
echo "$msg";
}else{
$fecha=date("Y-m-d"); 
$estado='OK'; // Cambiar por SR si deseas que todos los mensajes no se publiquen hasta que los hayas revisado.
$query=mysql_query("insert into comentarios(publicado,fecha,name,email,comentarios,estado) values('$publicado','$fecha','$name','$email','$comentarios','$estado')");
echo mysql_error();
echo "Gracias por su comentario. espere..... <br>".$actualiza;//ACTULIZAMOS DESPUES DE GUARDAR
}
}

?>
</div>
<!--******************************************* -->
<!--******************************************* -->
<div class="TITULO">DEJE SU COMENTARIO
</div>
<!--******************************************* -->
<!--******************************************* -->
<div class="CASILLAS">
<?
echo "<form method=post action=''><input type=hidden name=todo value=post_comment><span class='EstiloROJO'>* </span>
Nombre:  <br /><input name=name type=text class='fondocasillausuario' size='42'>
<br />
<input type=hidden name=id value=?
echo $id; ?>
<span class='EstiloROJO'>* </span>E-mail 
(No saldrá publicado):  <br /><input name=email type=text class='fondocasillausuario' size='42'>
<br />
<span class='EstiloROJO'>* </span>Comentarios:  <br />
<textarea name=comentarios cols=40 rows=3 class='fondocasillausuario'></textarea><br /><br />
<input type='reset' class='BOTONcomentarioborrar' value='    Borrar    '>
  <input type=submit class='BOTONcomentarioenviar' value='   Publicar   '>
</form>";
?>
</div>
<!--******************************************* -->
<!--******************************************* -->

Este sistema de comentarios está desactualizado ya existe un nuevo sistema si desea saber mas de click aquí

Visita nuestro nuevo sistema de comentarios mas panel de administración click aquí

Espero que les guste y les sirva en algún proyecto….