elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Script php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Script php  (Leído 4,040 veces)
inquilin@19

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Script php
« en: 21 Octubre 2011, 16:17 pm »

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 Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Script php
« Respuesta #1 en: 21 Octubre 2011, 19:22 pm »

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

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Script php
« Respuesta #2 en: 21 Octubre 2011, 20:54 pm »

Eso es un contador inverso. En javascript se haría de la siguiente manera:

Código
  1. <script language="javascript">
  2.  
  3.      //Fechas inicial y final
  4.  
  5.      var Hoy=new Date()
  6.      var Nav=new Date(Hoy.getFullYear(), 11, 25)
  7.      var mseg_dia=1000*60*60*24
  8.      var dias
  9.  
  10.      if (Hoy.getMonth()==11 && Hoy.getDate()>25)
  11.          Nav.setFullYear(Nav.getFullYear()+1)
  12.  
  13.      dias = Math.ceil((Nav.getTime()-Hoy.getTime())/(mseg_dia))
  14.      document.write("Quedan "+dias+" dias hasta Navidad")
  15.  
  16. </script>

Si quieres usar JQuery sería así:

Código
  1. var newYear = new Date();
  2. newYear = new Date(newYear.getFullYear() + 1, 1 - 1, 1);
  3. $('#defaultCountdown').countdown({until: newYear});
  4.  
  5. $('#removeCountdown').toggle(function() {
  6.        $(this).text('Re-attach');
  7.        $('#defaultCountdown').countdown('destroy');
  8.    },
  9.    function() {
  10.        $(this).text('Remove');
  11.        $('#defaultCountdown').countdown({until: newYear});
  12.    }
  13. );

Fuente. Si quieres ver más ejemplos, busca en Google por "javascript countdown".

En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
inquilin@19

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Re: Script php
« Respuesta #3 en: 21 Octubre 2011, 22:01 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Script php
« Respuesta #4 en: 21 Octubre 2011, 22:10 pm »

Hola, en ves de stst() usa esto:
Código
  1. <?php if(filter_var($email, FILTER_VALIDATE_EMAIL)){ ... ?>

Además pon el cast en parentesis:
Código
  1. 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 Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Script php
« Respuesta #5 en: 21 Octubre 2011, 22:12 pm »

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.php

El 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
Código
  1. <?php
  2. //Aca defines la hora cero (cuando el contador llega a 0)
  3. //Yo pongo de ejemplo Halloween de éste año (31/Oct/11 a las 00:00:00)
  4.   $dia_cero = 31;
  5. //$hora_cero = 0;
  6. //$min_cero = 0;
  7. //$seg_cero = 0;
  8.  
  9. //Aca defines la zona horaria
  10.   date_default_timezone_set('America/Bogota');
  11.  
  12. //Aca obtienes la hora actual del servidor
  13.   $dia_act = date('d');
  14.   $hora_act = date('H');
  15.   $min_act = date('i');
  16.   $seg_act = date('s');
  17.  
  18. //Calculas el tiempo restante
  19.   $dia_rest = ($dia_cero - $dia_act) - 1;
  20.   $hora_rest = 23 - $hora_act;
  21.   $min_rest = 59 - $min_act;
  22.   $seg_rest = 60 - $seg_act;
  23. ?>
  24.  
  25. <html>
  26. <head>
  27.   <script language="javascript" type="text/javascript">
  28.      var dia_rest = <?php echo $dia_rest ?>;
  29.      var hora_rest = <?php echo $hora_rest ?>;
  30.      var min_rest = <?php echo $min_rest ?>;
  31.      var seg_rest = <?php echo $seg_rest ?>;
  32.  
  33.      var reloj = setInterval("muestraTemp()",1000);
  34.  
  35.      function muestraTemp(){
  36.         seg_rest -= 1;
  37.         if(seg_rest < 0){
  38.            seg_rest = 59;
  39.            min_rest -= 1;
  40.         }
  41.  
  42.         if(min_rest < 0){
  43.            min_rest = 59;
  44.            hora_rest -= 1;
  45.         }
  46.  
  47.         if(hora_rest < 0){
  48.            hora_rest = 23;
  49.            dia_rest -= 1;
  50.         }
  51.  
  52.         if(seg_rest==0&&min_rest==0&&hora_rest==0&&dia_rest==0){
  53.            clearInterval(reloj);
  54.         }
  55.  
  56.         document.timer_halloween.segundos.value = seg_rest;
  57.         document.timer_halloween.minutos.value = min_rest;
  58.         document.timer_halloween.horas.value = hora_rest;
  59.         document.timer_halloween.dias.value = dia_rest;
  60.      }
  61.  
  62.   </script>
  63. </head>
  64.  
  65. <body>
  66. <h1>Halloween en...</h1>
  67.   <form name="timer_halloween">
  68.      <input type="text" size="1" name="dias"> d&iacute;a(s)&nbsp;&nbsp;
  69.      <input type="text" size="1" name="horas"> hora(s)&nbsp;&nbsp;
  70.      <input type="text" size="1" name="minutos"> minuto(s)&nbsp;&nbsp;
  71.      <input type="text" size="1" name="segundos"> segundo(s)
  72.   </form>
  73. </body>
  74. </html>
« Última modificación: 21 Octubre 2011, 22:13 pm por dark_sargon » En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
inquilin@19

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Re: Script php
« Respuesta #6 en: 21 Octubre 2011, 22:22 pm »

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 Desconectado

Mensajes: 81



Ver Perfil
Re: Script php
« Respuesta #7 en: 22 Octubre 2011, 13:36 pm »

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
Código:
<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
Código:
 <?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 Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Script php
« Respuesta #8 en: 22 Octubre 2011, 19:44 pm »

Pues no estás recibiendo los valores de tu formulario.

En la segunda línea de tu PHP:
Código
  1. 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:
Código
  1. $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

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[shell script] ayuda con script, :( « 1 2 »
Scripting
dark_fidodido 14 10,766 Último mensaje 16 Septiembre 2009, 10:28 am
por dark_fidodido
script bash (ubuntu): Parar un proceso sin salir del script (SOLUCIONADO)
Scripting
moikano→@ 6 11,052 Último mensaje 28 Octubre 2010, 15:48 pm
por moikano→@
Script que anula otro script
Desarrollo Web
Feedeex 0 2,679 Último mensaje 11 Julio 2011, 19:07 pm
por Feedeex
[Script]Script para calcular offset de un ejectuable
Ingeniería Inversa
.:UND3R:. 4 4,705 Último mensaje 29 Septiembre 2011, 16:13 pm
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines