Foros del Web » Programando para Internet » PHP »

script con tiempo

Estas en el tema de script con tiempo en el foro de PHP en Foros del Web. hola gente! una pregunta, tengo un script que funciona todo bien, pero quiero que una ves usado ese script, no se pueda usar por X ...
  #1 (permalink)  
Antiguo 26/07/2005, 19:09
 
Fecha de Ingreso: mayo-2005
Mensajes: 164
Antigüedad: 18 años, 10 meses
Puntos: 0
script con tiempo

hola gente! una pregunta, tengo un script que funciona todo bien, pero quiero que una ves usado ese script, no se pueda usar por X tiempo, digamos un minuto para el usuario.

que me recomiendan? estaba pensando hacer algo en js, pero a lo mejor hay conflictos. porfavor todo consejo y sugerencia seran bien recividas!

gracias!
  #2 (permalink)  
Antiguo 26/07/2005, 19:28
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
Usuario registrado?, ¿cualquier visitante?.

Para el primer caso crea una columna en tu tabla tipor DATETIME, al ejecutar el script verificas que haya una diferencia mayor de X tiempo guardado, si cumple ejecutas y guardas el momento en que se ejecutó de lo contrario restringes su ejecución. Todo esto es SQL, busca la función DATE_SUB()
www.mysql.org

Para cualquier visitante... crea una cookie, misma lógica. www.php.net/setcookie

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 26/07/2005, 19:46
 
Fecha de Ingreso: mayo-2005
Mensajes: 164
Antigüedad: 18 años, 10 meses
Puntos: 0
listo, es para usuarios. a ver trato mas tarde y doy mi feedback adioss y gracias
  #4 (permalink)  
Antiguo 29/07/2005, 08:00
 
Fecha de Ingreso: mayo-2005
Mensajes: 164
Antigüedad: 18 años, 10 meses
Puntos: 0
no me sale tan bien! alguna idea un poco mas concreta? seria estupendo si pudiesen poner un script aca o algun tutorial que hayan encontrado.

gracias!
  #5 (permalink)  
Antiguo 29/07/2005, 09:18
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 19 años, 11 meses
Puntos: 1
Podrias utilizar una variable de session donde obtengas la hora en la que hizo la ejecución y la proxima vez que intenta ejecutarlo controle con la hora actual.
Eso te solucionaría el inconveniente.

Hay una funcion de php que te pasa todo a minutos para que puedas hacer la resta en paz.
__________________
:serio: :adios:
  #6 (permalink)  
Antiguo 29/07/2005, 09:42
 
Fecha de Ingreso: mayo-2005
Mensajes: 164
Antigüedad: 18 años, 10 meses
Puntos: 0
pero si lo hago con seciones a la hora de deslogearse y logearse no va a tener que esperar nada o si?

si alguien tiene algun scripr por ahi que me lo mande porfa
  #7 (permalink)  
Antiguo 29/07/2005, 09:45
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 19 años, 11 meses
Puntos: 1
No entiendo tu pregunta.
A ver, una vez más por favor!
__________________
:serio: :adios:
  #8 (permalink)  
Antiguo 29/07/2005, 10:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 164
Antigüedad: 18 años, 10 meses
Puntos: 0
a ver, has visto que si escribes un mensaje en este foro, tienes que esperar creo que un minuto o no se cuanto para volver a poder escribir otro mensaje? tengo una idea vaga de como hacerlo, y me ha salido un script muy grande y nada flexible, osea funciona pero medio complicado implementarlo en mis demas scripts.

me gustaria que me pongan aca un ejemplo como lo hacen ustedes o alguna direccion en donde encontrar ejemplos.

mas claro? :P gracias!
  #9 (permalink)  
Antiguo 29/07/2005, 10:25
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 19 años, 11 meses
Puntos: 1
jejeje, no se por que tanto código. Sería tan sencillo como esto:

Cuando ejecutas el script:
if((date("minutos")-$_SESSION['minutos`])>1){
PUEDE ACCEDER;
$_SESSION['minutos'] = date("minutos"); // no me acuerdo como se ponen los minutos en esta funcion.
} else {
NO PUEDE ACCEDER.
}

Algo así, aunque la condición debería ser diferente seguramente.
__________________
:serio: :adios:
  #10 (permalink)  
Antiguo 29/07/2005, 17:29
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
Cita:
Iniciado por pipogol
has visto que si escribes un mensaje en este foro, tienes que esperar creo que un minuto o no se cuanto para volver a poder escribir otro mensaje?
Desgraciadamente... esto es un foro, no un chat hay que procurar evitar este tipo de mensajes.
Cita:
Iniciado por pipogol
tengo una idea vaga de como hacerlo, y me ha salido un script muy grande y nada flexible, osea funciona pero medio complicado implementarlo en mis demas scripts.
¿pero y quétienes??, ¿cuál es ese script??.. en base a ello se te podrá ir orientando.
(cosas como estas provocan el que se este escribeidno constantemente sin avanzar. Ve las recomendaciones para preguntar de este foro)

Cita:
Iniciado por pipogol
me gustaria que me pongan aca un ejemplo como lo hacen ustedes o alguna direccion en donde encontrar ejemplos.
Busca en este mismo foro...

Hace tiempo hice un script para mostrar las visitas en línea... la lógica es la misma y te servirá cualquiera de este tipo (hay uno en las FAQ incluso), tú simplemente debes cambiar el "mostrar que se esta conectado" por el "evitar que se ejecute"... una simple condicional.

Respecto a sesiones... son válidas mientras se encuentre navegando pero no es nada seguro, tengo entendido IExplorer destruye las sesiones a el cerrarse por lo que bastaria cerrar y abrir...

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 29/07/2005, 19:06
 
Fecha de Ingreso: mayo-2005
Mensajes: 164
Antigüedad: 18 años, 10 meses
Puntos: 0
lo que hice fue que al ejecutar el script saque el anio mes y dia y aparte la hora minuto y los segundos y los meto en una tabla en mysql. para luego llamarlos con UNIX_TIMESTAMP en un query, y convertirlos en segudnos y luego hacer lo mismo con la hora actual y restarlos. hacer un condicinal que si la diferencia es menos de 60 segundos de error y si es mayor pueda volver a ejecutar el script.

todo perfecto, pero si el script lo ejecuto antes de las 0:00:00 horas se va todo a la m. no pongo el script que es medio fastidioso, pero ojala me deje entender.

la verdad que no entiendo porque falla cuando cambia de fecha. a ver si alguien sabe algo.

saludos
  #12 (permalink)  
Antiguo 29/07/2005, 19:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
¿Y dónde esta el código dónde haces eso?, ¿cómo es tu tabla?, ¿de qué tipo es tu campo??...
Insistir ser claros y amplios para que no se conteste con otra pregunta. Lee las recomendaciones que dije.

Según entiendo puedes simplificar eso que haces con una intrucción en tu DB. Para tal caso, como dije desde mi primera participación, busca sobre la función DATE_SUB() de SQL: http://dev.mysql.com/doc/mysql/en/da...functions.html

Suponiendo necesitas consultar si ha pasado X tiempo de Y usuario:
Código:
SELECT campos FROM tabla WHERE usuario='Y' AND campo_datetime>DATE_SUB(NOW(), INTERVAL X MINUTE)
Esto tomaria el tiempo actual, le restaria X minutos (consulta las otras unidades) y consultaria en "campo_datetime" si el dato guardado es mayor a la diferencia resultante... sí regresa resultado querrá decir que ya ha pasado el tiempo límite de lo contrario sigue estando restringido...

Todo depende de tu enfoque, podrás usar una condiconal contrario o incluso sumarle a la fecha guardada un intervalo de tiempo --DATE_ADD()--.. cuestión tuya, solo hago una sugerencia.

... solo agregar que para ver si hubo resultados debes usar la función --de PHP-- mysql_num_rows().

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 00:31.