Foros del Web » Programando para Internet » PHP »

problema con if en php

Estas en el tema de problema con if en php en el foro de PHP en Foros del Web. estoy programando un pequeño modulo donde el usuario ingresa, despues si quiere ingresar a ver de nuevo la info no puede hasta despues de 5 ...
  #1 (permalink)  
Antiguo 16/06/2010, 18:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 287
Antigüedad: 15 años, 11 meses
Puntos: 2
problema con if en php

estoy programando un pequeño modulo donde el usuario ingresa, despues si quiere ingresar a ver de nuevo la info no puede hasta despues de 5 minutos. pero tengo un problema con un if, aver si me pueden ayudar


primero que nada compara la ip del usuario con alguna de la base de datos
aver si existe, si existe comparo la hora actual con la final
if($datos[ip] == $ip)
{

si aun no puede ingresar manda un mensaje de error
if($datos[horafin] > $hora)
{
echo"aun no puedes ingresar " ;
}
elseif($datos[horafin] < $hora)
{

de lo contrario si ya puede ingresar el usuario " osea si ya pasaron los 5 minutos"
elimino de la base de datos la ip la hora etc
mysql_query("delete from usuarios where ip='$ip'") ;


}


ahora de lo contrario si la ip no existe en la base de datos
muestro el contenido del modulo e inserto en la base de datos la ip horainicio y horafin


}
else
{


$horainicio= date ( "h:i:s:a"); // declaramos la hora

list($hora1, $minut) = split('[:]', $horainicio);
$horafin=date("H:i", mktime($hora1, $minut+5 , 0));//sumando la hora

mysql_query("insert into usuarios (ip,horainicio,horafin) values ('$ip','$horainicio','$horafin')");
echo"info del modulo" ;
}
si ya pasaron los 5 minutos en automatico se eliminan los datos pero el usuario tiene que ingresar de nuevo para que le muestre el contenido del modulo y de nuevo se inserten los datos.
esto es lo que quiero corregir, es decir que si ya pasaron los 5 minutos se eliminen los datos, se muestre el contenido del modulo y de nuevo se inserten los datos "nuevos"
y de lo contrario si la ip no existe en automatico muestre el contenido y se inserten los datos, como puedo lograr esto ? que tendria que modificar ?
  #2 (permalink)  
Antiguo 16/06/2010, 20:21
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: problema con if en php

Si ya pasaron los cinco minutos para que eliminas y vuelves a insertar la IP?

Ahora, si quieres comparar si ya pasaron los cinco minutos, deberías hacer una diferencia de la última hora de entrada con la hora actual. Evidentemente que si es mayor o igual, puede ingresar, de lo contrario, debe de esperar.

El punto es que debes hacer la diferencia de horas. Saber manejar el resultado que te muestra la diferencia, y allí imaginas como sabes si ya pasaron los cinco minutos.

Link
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 16/06/2010, 23:14
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: problema con if en php

No sé si será el problema pero creo que te faltan las comillas en:

$datos[ip]

$datos['ip']
  #4 (permalink)  
Antiguo 16/06/2010, 23:25
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años
Puntos: 1
Respuesta: problema con if en php

yo digo.
ejemplo en la tabla usuario tenes un campo que se llama hora_restringir int(3) NOT NULL, despues en php tomas el valor de la hora actual
Código PHP:
$actual date("m"); // en min 
y la almacenamos en la base de datos con update
Código PHP:
$adelantar date("m");
//hacemos un select para tomar el valor hora_restringir ejemplo $datos[hora_restringir]
if($datos[hora_restringir] <= ($adelantar 5))
{
echo 
"todabia tenes el acceso restringido";

no creo que funcione pero proba, si flasheo es por el sueño xD
  #5 (permalink)  
Antiguo 17/06/2010, 16:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 287
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: problema con if en php

elimino e inserto la ip mmm para actualizar la base de datos la ip etc, no quiero comparar la hora ni nada de eso por que funciona, no faltan comillas por que ami me funciona bien.
mi pregunta, como hacerle para que si ya pasaron los 5 minutos se eliminen los datos , se muestre la info del modulo y se inserte de new los datos. por que
en esta parte se eliminan los datos el usuario ingresa y se eliminan los datos pero para que muestre de nuevo la info del modulo tiene que volver a ingresar y eso es lo que quiero quitar nadamas. osea que creo un if me esta estorbando
elseif($datos[horafin] < $hora)
{
mysql_query("delete from usuarios where ip='$ip'") ;
lo demas funciona bien

Etiquetas: Ninguno
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 10:16.