Foros del Web » Programando para Internet » PHP »

Borrar datos de una tabla DB pasado un tiempo

Estas en el tema de Borrar datos de una tabla DB pasado un tiempo en el foro de PHP en Foros del Web. Hice ya mis scripts de registro de usuarios con activacion de cuenta por medio de un link q se envia al email del registrado automaticamente ...
  #1 (permalink)  
Antiguo 24/03/2004, 12:51
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 8 meses
Puntos: 0
Pregunta Borrar datos de una tabla DB pasado un tiempo

Hice ya mis scripts de registro de usuarios con activacion de cuenta por medio de un link q se envia al email del registrado automaticamente al registrarse. (En cuanto tenga un poco de tiempo los publico aqui por si a alguien le pudiera interesar).

Ahora quiero hacer q si el usuario no activa su cuenta pasadas 24h desde que hizo el registro, automaticamente se borre la cuenta de la base de datos, y q si en caso contrario la activase, no se borrara.

Pues bien, no se por donde empezar ya q no controlo mucho la funtion time(). En mi base de datos tengo creada una tabla "usuarios" q en ella se encuentra entre otras cosas la fecha del "registro". ¿Tendria q crear otra "celda" en la tabla usuarios, para q por ejemplo se ingresase la fecha de "activacion de cuenta"? Ya veis q estoy un poco liadillo con el tema.. a ver si alguno puede ayudarme y en cuanto consiga realizar esto, posteare todo el script por si a alguno le interesa ;)

Gracias de antemano y a ver si entre todos podemos sacarlo...

Salu2

Última edición por Gotrek; 24/03/2004 a las 12:54
  #2 (permalink)  
Antiguo 24/03/2004, 13:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En principio te hace falta un campo más extra a tu BD por usuario que indique la fecha que se registró y tal vez un campo más que indique (tipo "flag") que la cuenta de ese usuario se validó (ese dato puede ser tu "fecha activación cuenta" o simplemente un "1" o "0" para indicar que esa cuenta está activada o no y en conesecuencia todas las consultas que hagas por usuarios (al hacer tu login .. etc) se hagan condicionalmente a ese campo "... WHERE estado_cuenta="1" ...

El tema de ejecutar el script que va hacer la consulta a tu BD para deteminar por ese campo de fecha de registro si corresponde borrarlo o no (si pasaron 24 horas desde la fecha que se ejecute el script) podrías ejecutarlo bajo un "Cron Job" del S.O. (linux) (o "Programador de tareas de windows"). El caso es que esa "aplicación" ejecuta tu script en el intervalo de tiempo que especifiques.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/03/2004, 13:58
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 8 meses
Puntos: 0
Cita:
En principio te hace falta un campo más extra a tu BD por usuario que indique la fecha que se registró y tal vez un campo más que indique (tipo "flag") que la cuenta de ese usuario se validó (ese dato puede ser tu "fecha activación cuenta" o simplemente un "1" o "0" para indicar que esa cuenta está activada o no y en conesecuencia todas las consultas que hagas por usuarios (al hacer tu login .. etc) se hagan condicionalmente a ese campo "... WHERE estado_cuenta="1" ...
tengo un campo en la tabla "usuarios" q es "fecha", es donde se guarda la fecha de "pre-registro" por asi decirlo, osea la fecha del primer paso del registro, q es cuando mete los datos en el formulario. Lo del "flag" ya lo tengo hecho y me funciona correctamente. Osea el usuario recibe el mail con un link, cuando clickea en ese link va al script de activacion de cuenta, donde toma dos valores, el nick y la contraseña del usuario (contraseña q se forma aleatoriamente al rellenar el primer formulario de registro y se le envia al email junto al link de activacion, en ningun momento del "pre-registro" el usuario no ve la password hasta q le llega el mail), al coincidir los dos valores (contraseña y nick) ke envia en el link con los de mi base de datos, este activa el "flag" y cambia el valor de 0 a 1. Hasta ahi bien.

Cita:
El tema de ejecutar el script que va hacer la consulta a tu BD para deteminar por ese campo de fecha de registro si corresponde borrarlo o no (si pasaron 24 horas desde la fecha que se ejecute el script) podrías ejecutarlo bajo un "Cron Job" del S.O. (linux) (o "Programador de tareas de windows"). El caso es que esa "aplicación" ejecuta tu script en el intervalo de tiempo que especifiques.
Esto no me ha kedado muy claro xD El tema de "Cron Job" de Linux descartado ya q estoy usando mi PC como servidor para hacer las pruebas y tengo Windows XP.

Lo del programador de tareas de windows, q tengo q hacer exactamente con el? no entiendo muy bien a q te refieres con eso a ver si puedes aclararmelo.

Muchas gracias y a ver si consigo terminarlo !!

Salu2
  #4 (permalink)  
Antiguo 24/03/2004, 14:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si dices usar Windows .. el programador de tareas (por lo menos está en W98 .. no sé en XP y sino puedes usar cualquier otra aplicación que haga eso mismo: ejecutar aplicaciones en los intervalos de tiempo dados ..) se trata de llamar a tu script PHP de proceso en modo "CLI" (Comand Line Interface) ...

Es decir .. en tu programador de tareas dirias que vas a ejecutar algo tipo:

c:\nose\php\cli\php.exe -r tuscript.php

ò

c:\nose\php\php-cli.exe -r tuscript.php

(depende de la versión de PHP que uses .. )

Asegurate de que tu script no haga ninguna salida HTML o use cabeceras HTTP .. ya que no lo vas a ejecutar desde tu servidor HTTP (Apache o el que uses) sino por "Linea de comandos" .. (de todas formas .. para eso está el parámetro -r creo recordar)

mas info:
http://www.php.net/manual/en/features.commandline.php

Si algún dia migras a Linux .. ahí usaras el "Cron Job" de este.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 24/03/2004, 14:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. se me pasó decir ...

Con el tema del "programador de taréas o el crob job" vas a conseguir ejecutar tu script de proceso cada 24 horas .. pero te faltaría diseñar ese script para que haga una consulta a tu BD por todos los registros que la fecha de pre-registro que guardas sea superior a 24 horas y borrarnos (con un DELETE condicional por fecha ahora: NOW() y la fecha de ese campo podrías hacerlo directamente .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/03/2004 a las 14:40
  #6 (permalink)  
Antiguo 24/03/2004, 14:45
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 8 meses
Puntos: 0
De acuerdo

Entiendo... ¿ y para cuando suba la web al hosting de pago q en breve tendre ?


muchas gracias Cluster ;) ahora me pondre a "trastear" a ver q logro

Muchas gracias de verdad, me has servido de gran ayuda

Salu2
  #7 (permalink)  
Antiguo 03/04/2011, 09:26
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Borrar datos de una tabla DB pasado un tiempo

Cita:
Iniciado por Cluster Ver Mensaje
Bueno .. se me pasó decir ...

Con el tema del "programador de taréas o el crob job" vas a conseguir ejecutar tu script de proceso cada 24 horas .. pero te faltaría diseñar ese script para que haga una consulta a tu BD por todos los registros que la fecha de pre-registro que guardas sea superior a 24 horas y borrarnos (con un DELETE condicional por fecha ahora: NOW() y la fecha de ese campo podrías hacerlo directamente .. )

Un saludo,
alguien sabe como hacer ese condicional ?¿?
  #8 (permalink)  
Antiguo 03/04/2011, 09:27
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Respuesta: Borrar datos de una tabla DB pasado un tiempo

Hola fupinet

Te recuerdo el aviso que había al final de este tema y que parece que no has leído o no le has hecho ni caso.



Tema cerrado.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 12:13.