Hola que tal, hice un sistema de comentarios, pero tengo un inconveniente, cada vez que se recarga la pagina, vuelve a mandar el ultimo comentario y guardandolo en la base de datos. Que prodra ser?
dejo el code completo, muchas gracias de antemano!
Código PHP:
//Comentarios New
echo'<link href="/comments/estilocomentarios.css" rel="stylesheet" type="text/css" />
<span class="num_comments "> <span id="num_com_add">',$context['numcom'],'</span> Comentarios</span>
<span class="onpost"> ', $context['subject'],'</span>';
//Conecto
$publicado='Publicado';
echo'<div class="TODO"><div class="COMENTARIOS">';
$q=mysql_query("select name, comentarios,fecha from comentarios where p_id='$topic' and estado='OK' order by fecha ");
while($nt=mysql_fetch_array($q)){ $comentarios=nl2br($nt['comentarios']);
echo '<div class="clearfix comment-box is-user ">
<div class="floatL fondoavatar">
<img id="error_avatar" src="/images/def/avatar.png" width="70" height="70" />
</div>
<div class="floatR comment-body">';
echo '<div class="clearfix comment-info"><div class="floatL"><b>',$nt[name],'</b></strong> <span>'.date("d-m-Y",strtotime($nt['fecha'])).'</span></div></div>';
echo '<div class="comment-content clearfix">',$comentarios,'</div>';
echo '</div></div>';
}
echo '</div>';
//Capturo Comments
@$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.'<div class="RESULTADO">Su nombre debe tener más de 3 letras y menos de 25. </div><BR>';
$estado= 'NOTOK';}
if( strlen($comentarios) <3 ){
$msg=$msg.'<div class="RESULTADO">Su comentario debe tener más de 3 letras por lo menos.</div><BR>';
$estado= 'NOTOK';}
//****************************
if(!preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$/",$email)){
$msg=$msg.'<div class="RESULTADO">Su email, no es correcto.</div><BR>';
$estado= 'NOTOK';}
//****************************
if($estado<>"OK"){
echo $msg;
}else{
$fecha=date("Y-m-d");
$estado='SR'; // Cambiar por OK si desea que todos los mensajes se aprueben automáticamente una vez publicados.
$query=mysql_query("insert into comentarios(p_id,publicado,fecha,name,email,comentarios,estado) values('$topic','$publicado','$fecha','$name','$email','$comentarios','$estado')");
echo mysql_error();
echo '<div class="RESULTADO">Gracias por su comentario. Falta solo autorizarlo por el administrador</div><br>';
}
}
//Envio Comments
echo'<div class="TITULO">COMENTARIOS</div>';
echo '<div class="CASILLAS"><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 />
<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></div>';
//Fin Comentarios New