Autor Tema: [DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?  (Leído 680 veces)

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« en: 23 de Octubre de 2010, 09:05:33 am »
Hola a todos, necesitaria saber como puedo hacer como, por ejemplo, alguien que le suma +1 a un valor no pueda volver a sumarle +1 hasta dentro de 24 horas. Seria algo asi como un:

if (PASO EL TIEMPO) {
+1 } else {
NO PASO EL TIEMPO, TE FALTAN X HORAS }

Pero no se como hacerlo...

Comunidad PHPeros

[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« en: 23 de Octubre de 2010, 09:05:33 am »

Desconectado ferdi342

  • PHPero Experto
  • *****
  • Mensajes: 734
  • Karma: 8
  • Sexo: Masculino
  • Gúgol
    • Ver Perfil
    • Google - La solución a todo
Re:[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« Respuesta #1 en: 23 de Octubre de 2010, 11:18:20 am »
Diría que con la función time();

http://php.net/manual/es/function.time.php
A veces hay que dejar terminar cosas buenas para que empiecen mejores, How I Met Your Mother

Desconectado j0n4th4ntub3

  • PHPerit@
  • *
  • Mensajes: 18
  • Karma: 2
  • Nuev@ PHPer@
    • Ver Perfil
Re:[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« Respuesta #2 en: 03 de Noviembre de 2010, 03:52:35 am »
podrias usar sesiones

Código: [Seleccionar]
<?php

$time 
time();

if(
$_SESSION[&#39;utlima_accion&#39;] > $time - 10)
die(&#39;debes esperar...&#39;);

$_SESSION[&#39;utlima_accion&#39;] = $time;

?>



sera eso?

saludos!

Desconectado Farresito

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 5
  • Sexo: Masculino
  • PimPamTomaC++
    • Ver Perfil
    • Farresito
Re:[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« Respuesta #3 en: 03 de Noviembre de 2010, 18:39:25 pm »
podrias usar sesiones

Código: [Seleccionar]
<?php

$time 
time();

if(
$_SESSION[&#39;utlima_accion&#39;] > $time - 10)
die(&#39;debes esperar...&#39;);

$_SESSION[&#39;utlima_accion&#39;] = $time;

?>



sera eso?

saludos!
Sep, una buena idea ;) Había un par de funciones que hacían eso, pero como tengo el PHP perdido, ya las tengo en el olvido xD
“Lo mejor de los booleanos es que si te equivocas estás a un sólo bit de la solución correcta.”

-- Anónimo

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

-- Isaac Asimov

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« Respuesta #4 en: 03 de Noviembre de 2010, 18:56:54 pm »

No es justamente lo que estás buscando, pero quizás esto te sirva:
http://www.phperos.net/foro/index.php/topic,6382.0.html

#Fdo. Physlet

Desconectado osharo

  • PHPerit@
  • *
  • Mensajes: 12
  • Karma: 0
    • Ver Perfil
Re:[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« Respuesta #5 en: 13 de Noviembre de 2010, 10:04:59 am »
hola, yo tengo el mismo problema y mas o menos me he guiado segun vuestros comentarios, mirad tendo el siguiente codigo;
Código: [Seleccionar]
<?php
$data 
GetUserVar($_SESSION[&#39;id&#39;], "timecreditos");
if($data) {
if ($data 60*60*24 time()) {
mysql_query("UPDATE users SET credits = credits + 1000 WHERE id= &#39;".$_SESSION[&#39;id&#39;]."&#39;");
echo&#39;Has recibido 1000 creditos<br />&#39;;
}
} else {
mysql_query("UPDATE users SET timecreditos = &#39;".time()."&#39; WHERE id= &#39;".$_SESSION[&#39;id&#39;]."&#39;");
mysql_query("UPDATE users SET credits = credits + 1000 WHERE id= &#39;".$_SESSION[&#39;id&#39;]."&#39;");
echo&#39;Has recibido 1000 creditos<br />&#39;;
}
 
?>

Todo va correctamente, solo que no consigo que ejecute las consultas cuando pasa un dia
<?
$query2 = "UPDATE `usuarios` SET karma = karma + 1 WHERE id= 'Osharo'";
mysql_query($query2);
?>

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[DUDA] ¿Como delimitar acciones segun el tiempo transcurrido?
« Respuesta #6 en: 13 de Noviembre de 2010, 10:32:55 am »
Haber tienes que hacer consultas, crea un campo donde el usuario llamado timerefresh  algo así.
Le metes el tiempo de espera en segundos más la funcion time(), quedaría asi:

$timerefresh = time() + 86400;

y la siguiente consulta:

mysql_query("UPDATE usuarios SET timerefresh = '".$timerefresh."' WHERE id = '".$_SESSION['user_id']."'");

y le meterá los datos, ahora sacas los datos de timerefresh, y pones lo siguiente:

if ($consulta['timerefresh'] >= time())
{
       echo "Ha pasado un día desde tu última conexion";
}

No cabe que aclarar que lo siguiente debe ir en todas las paginas o en una página header:

mysql_query("UPDATE usuarios SET timerefresh = '".$timerefresh."' WHERE id = '".$_SESSION['user_id']."'");

Saludos