Autor
|
Tema: Script php (Leído 4,045 veces)
|
inquilin@19
Desconectado
Mensajes: 81
|
Hola a todos, vereis, tengo un problemilla, resulta que tengo que hacer un contador que me diga los dias, horas, minutos y segundos que quedan para tal fecha (un cumpleaños, por ejemplo) e probado a acer el contador pero solo consigo que sea estático y no se como hacer para que lo lea el html alguna ayuda? muchas gracias
|
|
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
Yo lo haría con PHP y javascript. De tal forma que el script PHP te dé los valores de las variables HH:MM:SS pero como dices, estas son estáticas. Luego de tenerlas las pones como valores iniciales de un contador en javascript que se actualiza automáticamente cada segundo.
|
|
|
En línea
|
|
|
|
madpitbull_99
|
Eso es un contador inverso. En javascript se haría de la siguiente manera: <script language="javascript"> //Fechas inicial y final var Hoy=new Date() var Nav=new Date(Hoy.getFullYear(), 11, 25) var mseg_dia=1000*60*60*24 var dias if (Hoy.getMonth()==11 && Hoy.getDate()>25) Nav.setFullYear(Nav.getFullYear()+1) dias = Math.ceil((Nav.getTime()-Hoy.getTime())/(mseg_dia)) document.write("Quedan "+dias+" dias hasta Navidad") </script>
Si quieres usar JQuery sería así: var newYear = new Date(); newYear = new Date(newYear.getFullYear() + 1, 1 - 1, 1); $('#defaultCountdown').countdown({until: newYear}); $('#removeCountdown').toggle(function() { $(this).text('Re-attach'); $('#defaultCountdown').countdown('destroy'); }, function() { $(this).text('Remove'); $('#defaultCountdown').countdown({until: newYear}); } );
Fuente. Si quieres ver más ejemplos, busca en Google por "javascript countdown".
|
|
|
En línea
|
|
|
|
inquilin@19
Desconectado
Mensajes: 81
|
Creo que me servira, lo tengo que implementar en una pagina html, pero tenemos un manual que mas o menos dice como se hace. Ahora mi pregunta es, tengo este código: <html> <head> <title>usuario y correo</title> </head> <body> <h1>Bienvenido a la Web!</h1><p/> <h3>Introduce tus datos de usuario</h3><p/> <form action="formato_a1.php" method="POST"> <p><strong>UserName:</strong><br/> <input type="text" name="username"/></p>
<p><strong>E-mailAddress:</strong><br/> <textarea name="emailaddress" rows="" cols="20"></textarea></p> <p><input type="submit" value="check and send"/></p> </form> </body> </html>
que va enlazado a este php <?php echo "<p>Bienvenido<b>".$_POST=ucwords($_POST["username"])."</b></p>";
if (strstr($_POST["emailaddress"],"@")) { echo "<p>Tu e-mail es correcto:<b>".$_POST["emailaddress"]."</b></p>"; } else { echo "<p> ERROR! Tu dirección de e-mail no es válida, revísala</p>"; } ?> El primer echo me sale bien, pongo el nombre del usuario y me le muestra, la pega es que al meter el email, se supone que si no lleva @ tiene que dar error pero aunque lleve @ sigue dando error. ¿Que he puesto mal?
|
|
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
WHK
|
Hola, en ves de stst() usa esto: <?php if(filter_var($email, FILTER_VALIDATE_EMAIL )){ ... ?>
Además pon el cast en parentesis: echo "<p>Bienvenido<b>".($_POST=ucwords($_POST["username"]))."</b></p>";
dale un vistazo a tu php si tienes errores activados para ver mejor que pasa.
|
|
|
En línea
|
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
Según entendí ya tienes el contador pero quieres que en tu documeto se actualice cada segundo. Hice un ejemplo para Halloween con PHP y javascript. http://www.actimediaonline.com/hora.phpEl problema de obtener la fecha actual con javascript es que tomará la del cliente y no la de tu propio reloj (servidor). Por esa razón digo que sería mejor con PHP. hora.php <?php //Aca defines la hora cero (cuando el contador llega a 0) //Yo pongo de ejemplo Halloween de éste año (31/Oct/11 a las 00:00:00) $dia_cero = 31; //$hora_cero = 0; //$min_cero = 0; //$seg_cero = 0; //Aca defines la zona horaria //Aca obtienes la hora actual del servidor //Calculas el tiempo restante $dia_rest = ($dia_cero - $dia_act) - 1; $hora_rest = 23 - $hora_act; $min_rest = 59 - $min_act; $seg_rest = 60 - $seg_act; ?> <html> <head> <script language="javascript" type="text/javascript"> var dia_rest = <?php echo $dia_rest ?>; var hora_rest = <?php echo $hora_rest ?>; var min_rest = <?php echo $min_rest ?>; var seg_rest = <?php echo $seg_rest ?>; var reloj = setInterval("muestraTemp()",1000); function muestraTemp(){ seg_rest -= 1; if(seg_rest < 0){ seg_rest = 59; min_rest -= 1; } if(min_rest < 0){ min_rest = 59; hora_rest -= 1; } if(hora_rest < 0){ hora_rest = 23; dia_rest -= 1; } if(seg_rest==0&&min_rest==0&&hora_rest==0&&dia_rest==0){ clearInterval(reloj); } document.timer_halloween.segundos.value = seg_rest; document.timer_halloween.minutos.value = min_rest; document.timer_halloween.horas.value = hora_rest; document.timer_halloween.dias.value = dia_rest; } </script> </head> <body> <h1>Halloween en...</h1> <form name="timer_halloween"> <input type="text" size="1" name="dias"> día(s) <input type="text" size="1" name="horas"> hora(s) <input type="text" size="1" name="minutos"> minuto(s) <input type="text" size="1" name="segundos"> segundo(s) </form> </body> </html>
|
|
« Última modificación: 21 Octubre 2011, 22:13 pm por dark_sargon »
|
En línea
|
|
|
|
inquilin@19
Desconectado
Mensajes: 81
|
Si! Es lo que necesitaba, yo lo hacia pero de tal manera que era estatico, es decir, mostraba como el resultado de una resta solamente. A proposito de lo que dices de que es mejor con php, el java es un lenguaje que nosotros no usamos (no se por qué la verdad), por eso me esta costando encontrar ayuda para hacer este contador. Referente al otro problema, el de chekear si el email es correcto o no he usado el codigo de WHK pero me sigue saliendo igual.
Muchisimas gracias por la ayuda! Estoy estudiando esto en mi ciclo formativo pero me temo que soy demasiado pato :p
|
|
« Última modificación: 21 Octubre 2011, 22:24 pm por inquilin@19 »
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
inquilin@19
Desconectado
Mensajes: 81
|
Hola otra vez, por fin e conseguido tener el contador hecho, pero ahora tengo otro problema. Necesito que esté enlazado con el html para mostrarlo en el navegador. Esto es lo que tengo por ahora y donde me he atascado: codigo html <html> <head> <title>Contador de fechas</title> </head> <body> <h1>¿Cuántos días quedan para tu cumpleaños?</h1><p/> <h3>Introduce la fecha de tu próximo cumpleaños y mira cuánto queda</h3><p/> <form action="contador_cumpleanos_bueno.php" method="POST"> <p><strong>MES</strong><br/> <input type="text" name="mes"/></p>
<p><strong>DIA</strong><br/> <input type="text" name="dia"/></p>
<p><strong>AÑO</strong><br/> <input type="text" name="ano"/></p> <p><input type="submit" value="Mira cuántos días quedan"/></p>
</form> </body> </html> CODIGO PHP <?php countdown(2012,9,26,7,30,20); function countdown($year, $month, $day, $hour, $minute, $second) { $cuentaatras = mktime($hour, $minute, $second, $month, $day, $year, -1);
$hoy = time();
$diferencia = $cuentaatras - $hoy; if ($diferencia < 0) $diferencia = 0;
$diasrestantes = floor($diferencia/60/60/24); $horasrestantes = floor(($diferencia - $diasrestantes*60*60*24)/60/60); $minutosrestantes = floor(($diferencia - $diasrestantes*60*60*24 - $horasrestantes*60*60)/60); $segundosrestantes = floor (($diferencia- $diasrestantes*60*60*24 - $horasrestantes*60*60 - $minutosrestantes*60)/60); echo "Quedan ".$diasrestantes." diass ". $horasrestantes." horas ". $minutosrestantes." minutos y ". $segundosrestantes."segundos"; } ?> Ahi es donde me he atascado, ya que ponga lo que ponga en el navegador me sale siempre la misma fecha
|
|
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
Pues no estás recibiendo los valores de tu formulario. En la segunda línea de tu PHP: countdown(2012,9,26,7,30,20);
Le estás pasando argumentos constantes a tu función. Debes tomar los datos de tu formulario con: $dia = $_POST['campo_dia'];
Con la línea anterior tendras almacenado el valor del campo de nombre campo_dia en la variable $dia. Como sugerencia, es mejor que hagas tu propio script ya que ese que tienes ahí parece que tomara valores de año, mes, día, hora, minutos y segundos. Tú solo estás pasando con tu formulario mes, dia y año.
|
|
|
En línea
|
|
|
|
|
|