Foros del Web » Programando para Internet » PHP »

Problema con limite de firmas

Estas en el tema de Problema con limite de firmas en el foro de PHP en Foros del Web. Holass.. les comento que estoy tratando de hacer un sistema de limites de firmas en un libro de visitas programado por mi .. no tendria ...
  #1 (permalink)  
Antiguo 27/12/2006, 01:53
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 4 meses
Puntos: 0
Problema con limite de firmas

Holass..
les comento que estoy tratando de hacer un sistema de limites de firmas en un libro de visitas programado por mi ..
no tendria que dejar firmar mas de 1 vez por ip cada 24 hs. (Osea se podria firmar con una ip 1 vez cada 24 horas solamente)
El problema es que nunca logro que aparezca el cartel de que ya hize una firma en las ultimas 24 horas

Aca mi codigo :

Código PHP:
<?
$mensajes 
mysql_query("SELECT * FROM librovisitas ORDER BY id DESC");

while (
$row mysql_fetch_array($mensajes))
{
      echo 
'
            <table>
               <tr class=b>
                 <td><b>De</b> : '
.$row["creador"].' || <b>Fecha y hora</b> : ('.$row["fecha"].')</td>
               </tr>
               <tr class=b>
                 <td><b>E-Mail</b> : '
.$row["email"].'</td>
               </tr>
               <tr class=b>
                 <td><b>Mensaje</b> : '
.$row["mensaje"].'</td>
               </tr>
               <tr>
                 <td width=800><hr></td>
               </tr>
            </table>
      '
;
      
}

echo 
"
<form name='shout' action='index2.php?a=lvisitas' method=post>
<b><font style='font-size:11px;'></b></font>
<table>
<tr class=d><td>Agrega tu firma</td></tr>
<tr class=d><td width=800><hr></td></tr>
</table>
<table>
<tr class=d><td>Nombre</td><td><input type=\"text\" name=\"nombre\" maxlength=\"30\"></td></tr>
<tr class=d><td>E-Mail</td><td><input type=\"text\" name=\"email\" maxlength=\"150\"></td></tr>

<tr class=d><td>Mensaje</td><td><textarea rows=\"6\" cols=\"20\" name=\"shout\"></textarea></td></tr>

<tr class=d><td><input type=\"submit\" value=\"OK\"></td></tr>
</table>
</center></form>
"
;
if (isset(
$_POST['shout']))
{

      
$mensaje $_POST['shout'];
      
$nombre $_POST['nombre'];
      
$email $_POST['email'];
      
$fecha date("Y-m-d H:i");
      
$ip getenv("REMOTE_ADDR");
      
$get_timepost mysql_fetch_array(mysql_query("SELECT * FROM librovisitas WHERE ip='".$ip."'"));
      
$count_timepost mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM librovisitas WHERE ip='".$ip."'"));
      
$tiempo_post time();
      
$tiempo_final $tiempo_post $get_timepost['time_lvisit'];
    

      if (
$mensaje == '')
      {

             echo 
'<script language="javascript">
         alert("El mensaje esta vacio.");
             location.href=("index2.php?a=lvisitas")
             </script>'
;

      }
      elseif (!
ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$"$email))
      {
             echo 
'<script language="javascript">
         alert("E-Mail No valido.");
             location.href=("index2.php?a=lvisitas")
             </script>'
;
      }
      elseif (
$nombre == '')
      {
             echo 
'<script language="javascript">
         alert("Ingresa un nombre.");
             location.href=("index2.php?a=lvisitas")
             </script>'
;
      }
      elseif (
$count_timepost['count'] != '0')
      {
          if (
$tiempo_final >= '86400')
          {
             echo 
'<script language="javascript">
         alert("Ya has publicado un mensaje con esta dirección ip en las ultimas 24 horas.");
             location.href=("index2.php?a=lvisitas")
             </script>'
;
          }
          else
          {
             
mysql_query("INSERT INTO librovisitas (id, fecha, mensaje, creador, email, ip, time_lvisit) values ('', '".$fecha."', '".$mensaje."', '".$nombre."', '".$email."', '".$ip."', '".$tiempo_post."')");
             echo 
'<script language="javascript">
         alert("Mensaje enviado satisfactoriamente.");
             location.href=("index2.php?a=lvisitas")
             </script>'
;
          }
      } 
      
      else
      {
             
mysql_query("INSERT INTO librovisitas (id, fecha, mensaje, creador, email, ip, time_lvisit) values ('', '".$fecha."', '".$mensaje."', '".$nombre."', '".$email."', '".$ip."', '".$tiempo_post."')");
             echo 
'<script language="javascript">
         alert("Mensaje enviado satisfactoriamente.");
             location.href=("index2.php?a=lvisitas")
             </script>'
;
      }

}
?>
Saludos!
  #2 (permalink)  
Antiguo 27/12/2006, 04:27
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: Problema con limite de firmas

Hola!
has probado de hacer un echo de la variable $tiempo_final???
si es asi y el valor te sale correcto, cuando haces el if quitale las comillas simples.
Código PHP:
echo $tiempo_final;
if (
$tiempo_final >= 86400){... 
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 27/12/2006, 12:50
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Problema con limite de firmas

Cita:
Iniciado por sergi_climent Ver Mensaje
Hola!
has probado de hacer un echo de la variable $tiempo_final???
si es asi y el valor te sale correcto, cuando haces el if quitale las comillas simples.
Código PHP:
echo $tiempo_final;
if (
$tiempo_final >= 86400){... 
saludos
sisi $tiempo_final esta correcta
le removi las comillas pero sigo podiendo postear mensajes ilimitados con la misma ip
:S

Otra solucionn??

Saludos
  #4 (permalink)  
Antiguo 28/12/2006, 03:38
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 6 meses
Puntos: 7
Re: Problema con limite de firmas

Creo que el problema es que deberías usar en lugar de
Código PHP:
$ip getenv("REMOTE_ADDR"); 
esto
Código PHP:
$ip $_SERVER["REMOTE_ADDR"]; 
Aparte, deberías ordenar el SELECT, para asegurarte que es el útimo post al que hace referencia...

Código PHP:
$get_timepost mysql_fetch_array(mysql_query("SELECT * FROM librovisitas WHERE ip='$ip' ORDER BY time_lvisit DESC")); 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.