elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [SQL en PHP] Borrar entrada a las 24 horas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SQL en PHP] Borrar entrada a las 24 horas  (Leído 6,404 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
[SQL en PHP] Borrar entrada a las 24 horas
« en: 8 Mayo 2009, 22:04 pm »

Intento hacer un programa que al usar X veces la web no te deje más, lo hice con cookies, pero no me llama la atención ya que se puede borrar, por eso, pensé guard la IP durante 24 horas y a las 24 que se borre.

Pues eso, si alguien me puede ayudar...


En línea




дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #1 en: 9 Mayo 2009, 03:31 am »

Un cron.


En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #2 en: 9 Mayo 2009, 06:31 am »

la única forma es con sesiones en base de datos(guardando la IP).... pero si el usuario usa IP dinámica... y no exiges nombre de usuario y contraseña... no hay vuelta...

S2
En línea

luiggy2


Desconectado Desconectado

Mensajes: 439


¡ Hello word ! XD


Ver Perfil
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #3 en: 9 Mayo 2009, 15:46 pm »

Mi idea es que cada vez que se conecte un usuario a la web, se incremente el valor de la base de datos en 1. Cada vez que pida ver la base de datos, haces un select a esa celda de la BD, si es <= 10 (por ejemplo) que deje pasar, si no, que aparezca que no puede usarlo más.

Problemas:
- cada usuario tiene que estar registrado


Saludos!
Espero sus respuestas
En línea

" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #4 en: 10 Mayo 2009, 12:53 pm »

Se podria hacer que cuando entre un visitante haga una consula a la base de datos con su ip y tome acciones desde ahi..obviamente esto no puede evitar que si el visitante cambia de ip no lo reconozca... ademas generaria muchas consultas hacia la bd....

Código
  1. <?php
  2.  
  3. $limit = 5;
  4. $db_host = "localhost";
  5. $db_user = "root";
  6. $db_pass = "toor";
  7. $db_name = "limite";
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. $die_string = "Tu Ip ( $ip ) ha superado el limite maximo ( $limit ) de visitas por hoy. Por favor vuelve mañana.";
  10.  
  11.  
  12. $connection = mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error());
  13. mysql_select_db($db_name,$connection) or die(mysql_error());
  14.  
  15.  
  16. $result = mysql_query("SELECT * FROM tabla_limite WHERE ip = '$ip'") or die(mysql_error());
  17.  
  18.  
  19. if (mysql_num_rows($result) > 0) {
  20.    while ($row = mysql_fetch_array($result)) {
  21.  
  22.        $ss_IP = $row['ip'];
  23.        $ss_TI = $row['time'];
  24.        $ss_TS = $row['times'];
  25.        $ss_TSs = $ss_TS + 1;
  26.  
  27.        if ($ss_TI < time() -86400) {mysql_query("DELETE FROM tabla_limite WHERE ip='$ss_IP'");}
  28.        elseif ($ss_TS >= $limit) {die($die_string);}
  29.        else {mysql_query("UPDATE tabla_limite SET times = '$ss_TSs',time = '".time()."'  WHERE ip='$ss_IP'");}
  30.    }
  31.  
  32. } else {
  33.    mysql_query("INSERT INTO tabla_limite (ip,times,time) VALUES ('$ip','1','".time()."')");
  34. }
  35.  
  36. mysql_close($connection);
  37. ?>

Esto lo que hace es comprobar si existe un registro con la ip del visitante...en caso de existir y ha superado el limite de visitas detiene todo y salta un mensaje de error...en caso de que no haya superado el limite... también chekea si han pasado 24 horas desde la ultima vez (86400 seg = 24h) y en caso de que si borra el registro.  En caso de que no se haya cumplido ninguna de las anteriores añade +1 a las veces que ha entrado y modifica el tiempo..
Y en caso de no existir tal registro lo crea...



Saludos
En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #5 en: 10 Mayo 2009, 17:53 pm »

Registro de usuarios con validación por email.
También miras la ip, mac, etc.


Así que la restricción se la haces a la cuenta directamente.


Es obvio que se puede pasar, pero es algo más seguro.


También podrías abrir el registro un par de horas al día...así que no se podrán registrar muchas veces xD...aunque tambien le niegas el acceso a otros...
En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #6 en: 10 Mayo 2009, 22:55 pm »

Otra cosilla: en la BD guardas la hora a la que se conectaron (con el time() que es más exacto) y para que no entren hasta que pasen 24 horas haces algo asi como

si (ahora < horaDeSuUltimaConexion+(numero de segundos que tiene un dia))
entonces devuelve falso
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #7 en: 11 Mayo 2009, 02:29 am »

El problema sería que no me gusta que guard IP's inecesariamente, quizás uno entre y no entre nunca más... era ese el problema^^
En línea




twoz

Desconectado Desconectado

Mensajes: 100



Ver Perfil
Re: [SQL en PHP] Borrar entrada a las 24 horas
« Respuesta #8 en: 17 Mayo 2009, 20:58 pm »

siguiendo lo que dice lipman puedes hacer que despues de por ejemplo 3 dias sin una conexión desde una ip, esta sea borrada de la base de datos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Añadir/Borrar entrada en el desinstalador de Windows
Windows
quico5 1 3,326 Último mensaje 27 Agosto 2012, 20:40 pm
por Randomize
borrar entrada de registro win 8.1
Windows
DaVinci4 4 5,010 Último mensaje 28 Marzo 2017, 18:50 pm
por Randomize
Archivo bat para borrar una entrada de registro con comodines
Scripting
zelarra 2 6,204 Último mensaje 10 Octubre 2023, 20:22 pm
por zelarra
Archivo bat para borrar una entrada de registro « 1 2 »
Scripting
zelarra 12 5,833 Último mensaje 19 Marzo 2024, 20:11 pm
por zelarra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines