Foros del Web » Programando para Internet » PHP »

Cuenta atras php

Estas en el tema de Cuenta atras php en el foro de PHP en Foros del Web. Hola compañeros. Estoy intentando hacer una cuenta atrás que al llegar a cero muestre un botón. Lo he intentado con JavaScript pero al recargar la ...
  #1 (permalink)  
Antiguo 30/04/2015, 11:05
 
Fecha de Ingreso: noviembre-2011
Ubicación: Almeria
Mensajes: 43
Antigüedad: 13 años
Puntos: 0
Cuenta atras php

Hola compañeros. Estoy intentando hacer una cuenta atrás que al llegar a cero muestre un botón. Lo he intentado con JavaScript pero al recargar la pagina la cuenta empieza desde el principio. Quiero hacerla con php y he pensado en guardar en la base de datos la hora y partir de hay para que no se pueda manipular pero no se como hacerlo. ¿Alguna sugerencia? Gracias
  #2 (permalink)  
Antiguo 30/04/2015, 11:28
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 8 meses
Puntos: 67
Respuesta: Cuenta atras php

Si lo realizas con php la página tiene que estar actualizandose cada momento para realizar la cuenta atrás, por lo que para hacerlo más dinámico deberas utilizar javascript.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 30/04/2015, 11:55
 
Fecha de Ingreso: noviembre-2011
Ubicación: Almeria
Mensajes: 43
Antigüedad: 13 años
Puntos: 0
Respuesta: Cuenta atras php

Pero al usar JavaScript al actualizar la pagina se reinicia el contador. lo que quiero es que diga, faltan x minutos para poder hacer esto. No tiene que aparecer el contador de forma automática. Gracias por contestar
  #4 (permalink)  
Antiguo 30/04/2015, 12:16
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 8 meses
Puntos: 67
Respuesta: Cuenta atras php

Puedes hacerlo con javascript y sacar la fecha de la base de datos y de hay calcular el tiempo restante. De esa manera no se reiniciará ya que captara la fecha de la DB y de hay calcula el tiempo en minutos que falta.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #5 (permalink)  
Antiguo 30/04/2015, 15:39
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 11 años, 4 meses
Puntos: 401
Respuesta: Cuenta atras php

Prueba así:
Código Javascript:
Ver original
  1. <html>
  2. <head>
  3.     <script language="JavaScript">
  4.  
  5.     /* Determinamos el tiempo total en segundos */
  6.     var totalTiempo=60;
  7.     /* Determinamos la url del archivo o del boton de descarga,(en ejemplo descarga de freebsd */
  8.     var url="http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.0/CHECKSUM.MD5-10.0-RELEASE-amd64";
  9.  
  10.     function updateReloj()
  11.     {
  12.         document.getElementById('CuentaAtras').innerHTML = "Por favor, espera "+totalTiempo+" segundos";
  13.  
  14.         if(totalTiempo==0)
  15.         {
  16.             window.location=url;
  17.         }else{
  18.             /* Restamos un segundo al tiempo restante */
  19.             totalTiempo-=1;
  20.             /* Ejecutamos nuevamente la función al pasar 1000 milisegundos (1 segundo) */
  21.             setTimeout("updateReloj()",1000);
  22.         }
  23.     }
  24.  
  25.     window.onload=updateReloj;
  26.  
  27.     </script>
  28. </head>
  29.  
  30. <body>
  31.  
  32. <h1>Preparando la descarga</h1>
  33. <h2 id='CuentaAtras'></h2>
  34.  
  35. </body>
  36. </html>
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #6 (permalink)  
Antiguo 30/04/2015, 16:30
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: Cuenta atras php

No entiendo como dices que se reinicia el contador de javascript, eso sera por mala programacion.
Si pones un contador de 5 minutos cuando recargues empezara de nuevo a descontar los 5 minutos.
Pero si usas una fecha absoluta no puede reiniciarse nunca.
__________________
http://www.roglastudios.es
  #7 (permalink)  
Antiguo 01/05/2015, 19:11
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Cuenta atras php

Te recomiendo que cuando empiece guardes el Time() como variable de sesión ($_SESSION) y a partir de ahí si se recarga utilices ese valor:

Código PHP:

<div id="countdown"></div>

<script type="text/javascript">
    var countdown_time = 60; //secconds
<?php
    
if(isset($_SESSION['countdown_start'])){
        echo 
"countdown_time -= "time() - $_SESSION['countdown_start'] . ";";
    }else{
        
$_SESSION['countdown_start'] = time();
    }
?>
    function countdown(cd_time){
        document.getElementById('countdown').innerHTML = cd_time;
        countdown = setInterval( function(){
            if(cd_time>0){
                cd_time--;
                document.getElementById('countdown').innerHTML = cd_time;
            }else{
                showButton();
                clearInterval(countdown);
            }
        }, 1000);
    }
    
    function showButton(){
        document.getElementById('countdown').innerHTML = "<a href='mipagina.com'>Continuar</a>"
    }
    
    document.addEventListener("load", countdown(countdown_time), false);
</script>
No sé si me dejo algo, es lo que me ha salido así rapido
  #8 (permalink)  
Antiguo 02/05/2015, 07:35
 
Fecha de Ingreso: noviembre-2011
Ubicación: Almeria
Mensajes: 43
Antigüedad: 13 años
Puntos: 0
Respuesta: Cuenta atras php

Creo que meh e liado yo solo, posiblemente he intentado complicarlo mas de la cuenta.

He intentado usar el siguiente codigo:

Código:
<?php 
$hora= date ("h:i:s");
$fecha= date ("j/n/Y");

$user=$_SESSION['user'];
$resulthora = mysql_query("SELECT * FROM personajes where user='$user'", $conexion);
				
while ($row = mysql_fetch_row($resulthora))
{
	$fechainicial=$row[16];
}

$fechafinal = $fecha . $hora;
$segundos = strtotime($fechafinal) - strtotime($fechainicial);


?>
Y el resultado era correcto pero al pasar x tiempo la variable se vuelve negativa y no funciona. he intentado unir mi codigo con el codigo javascript pero sigue pasando lo mismo. Creo que estoy mas perdido que al principio jeje. Gracias
  #9 (permalink)  
Antiguo 02/05/2015, 07:53
 
Fecha de Ingreso: noviembre-2011
Ubicación: Almeria
Mensajes: 43
Antigüedad: 13 años
Puntos: 0
Respuesta: Cuenta atras php

solucione que se pusiera en negativo con el siguiete codigo

$segundos=abs($segundos);

Ahora solo necesito ver como recargar la variable en pantalla y al pasar de 300 que muestre un boton
  #10 (permalink)  
Antiguo 02/05/2015, 08:17
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Cuenta atras php

Cita:
Iniciado por judio22 Ver Mensaje
solucione que se pusiera en negativo con el siguiete codigo

$segundos=abs($segundos);

Ahora solo necesito ver como recargar la variable en pantalla y al pasar de 300 que muestre un boton
No lo hagas de esa forma. Hazlo con javascript. El principal problema que surge es que pueden recargar la página pero puedes tratarlo con una variable php de $_SESSION. Te deje ya el código en un mensaje anterior:

Código PHP:
<div id="countdown"></div>

<script type="text/javascript">
    var countdown_time = 60; //secconds
<?php
    
#Si la variable $_SESSION['countdown_start'] está declarada => Han recargado la página => Establecemos el tiempo de la cuenta atras a (TIME()ACTUAL - TIME()DE SESIÓN)
    
if(isset($_SESSION['countdown_start'])){
        echo 
"countdown_time -= "time() - $_SESSION['countdown_start'] . ";";
    }else{
        
$_SESSION['countdown_start'] = time();
    }
?>
    /* Función controladora de la cuenta atrás */
    function countdown(cd_time){
        document.getElementById('countdown').innerHTML = cd_time;
        countdown = setInterval( function(){
            if(cd_time>0){
                cd_time--;
                document.getElementById('countdown').innerHTML = cd_time;
            }else{
                showButton();
                clearInterval(countdown);
            }
        }, 1000);
    }
    
    /* Función para mostrar el boton en cuanto se acaba el countdown */
    function showButton(){
        document.getElementById('countdown').innerHTML = "<a href='mipagina.com'>Continuar</a>"
    }
    
    /* Iniciar la cuenta atrás al cargar la página */
    document.addEventListener("load", countdown(countdown_time), false);
</script>
  #11 (permalink)  
Antiguo 02/05/2015, 09:15
 
Fecha de Ingreso: noviembre-2011
Ubicación: Almeria
Mensajes: 43
Antigüedad: 13 años
Puntos: 0
Respuesta: Cuenta atras php

Probe tu codigo y al recargar la pagina sigue reiniciando el tiempo. ¿porque puede ser?
  #12 (permalink)  
Antiguo 02/05/2015, 14:20
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Cuenta atras php

Cita:
Iniciado por judio22 Ver Mensaje
Probe tu codigo y al recargar la pagina sigue reiniciando el tiempo. ¿porque puede ser?
Tienes "session_start();" puesto en la primera linea?

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 13:06.