Foros del Web » Programando para Internet » PHP »

Error comico

Estas en el tema de Error comico en el foro de PHP en Foros del Web. Jejeje, bueno, estoy programando una especie de messageboard bastante simple.. que por si solo funciona bien. Pero decidi incluirlo en un "template" para agregarle algo ...
  #1 (permalink)  
Antiguo 04/06/2003, 16:08
 
Fecha de Ingreso: abril-2002
Mensajes: 8
Antigüedad: 22 años
Puntos: 0
Error comico

Jejeje, bueno, estoy programando una especie de messageboard bastante simple.. que por si solo funciona bien. Pero decidi incluirlo en un "template" para agregarle algo de estilo visual. En el codigo que tenia en el messageboard, tenia una variable al final que me decia en cuanto tiempo se habia generado la pagina (del messageboard). El caso esque cuando implemente los templates se me ocurrio que lo mejor seria mover ese pequeño script (el que me decia cuanto tiempo habia tardado en generar la pagina) hacia el template y que se ejecutara desde ahi, pues si lo dejaba en el codigo del messageboard el tiempo en el que se generaba la pagina iba a estar erroneo.


Ya al final cuando ejecute el messageboard con el template descubri un error que me causo gracia.. pues me decia ..
Cita:
Generacion de página en: 1054761228.995 segundos
no se que estare haciendo mal, agradeceria su ayuda SALUDOS
  #2 (permalink)  
Antiguo 04/06/2003, 16:14
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Seguro que ese valor es erroneo? ¿Seguro que tu script no tarda esos segundos?

Tendremos que creerte que esta mal.

Pero tengo un pequeño problemilla que quizas puedas arreglar. Mira, tengo la bola de cristal en el taller y no tengo forma de saber el sistema de templates que usas y el codigo de medir el tiempo. Y ya de paso como lo tienes metido. ¿Podrias ponerlo?

Saludos.

PD: Perdona si te a ofendido mi tono, no era mi intencion, pero me resulta gracioso que pidas ayuda sin dar toda la infomacion que se necesita para ayudarte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/06/2003, 16:23
 
Fecha de Ingreso: abril-2002
Mensajes: 8
Antigüedad: 22 años
Puntos: 0
Desacuerdo jejeje

jejeje, no, ese no es el tiempo que tarda en cargar

bueno aqui pongo el codigo

esto es template.php :

el x == 1 que pongo en el codigo es para identificar que parte de la funcion quiero, es decir si en el messageboard pongo template(1); lo identifica como la parte de "arriba" o lo que va antes de el codigo del messageboard. si pongo template(2); inserta lo que va despues del codigo del messageboard

Código PHP:

<?
function template($x) { //esta es la funcion de templates

if($x == 1) { 

function 
getmicrotime() {  
    list(
$usec$sec) = explode(" ",microtime());  
    return ((float)
$usec + (float)$sec);  


$tiempo_inicio getmicrotime(); 

?>

//aqui pongo lo que va antes de el codigo del messageboard

<? 
} else {
?>

//lo que va despues del codigo del messageboard

<? 
$tiempo_fin 
getmicrotime(); 
$tiempo_total round($tiempo_fin $tiempo_inicio,3); 
echo <
br><font size='1' face='Verdana'>Generacion de página en$tiempo_total segundos <br>"; 

}

}
?>
ahaha y no te preocupes por el tono.. jejeje creo que se me olvido lo mas importante
  #4 (permalink)  
Antiguo 04/06/2003, 16:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm porqué tienes tu } else { ahí?

Osese .. defines la función getmicrotime() si $x==1 .. obtienes el valor de inicio (tiempo ..) ..

Pero luego haces "si no es $x==1" (el }else{ .. ) coges el tiempo del $tiempo_fin = getmicrotime(); .. y haces tu calculo para obtener el tiempo invertido .. (la resta) ..

Esto:
Código PHP:
function getmicrotime() {  
    list(
$usec$sec) = explode(" ",microtime());  
    return ((float)
$usec + (float)$sec);  


$tiempo_inicio getmicrotime(); 
deberías tenerlo fuera de tu if ($x==1)

Y

Código PHP:
$tiempo_fin getmicrotime(); 
$tiempo_total round($tiempo_fin $tiempo_inicio,3); 
echo <
br><font size='1' face='Verdana'>Generacion de página en$tiempo_total segundos <br>"; 
fuera de tu IF ($x==1) { ...} else {... } .. aquí


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 05/06/2003, 02:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Esto, ¿y como llamas a esa funcion para crear la pagina? ¿La llamas varias veces (template(1); template(2); ...)? El problema esta en que no estas ejecutando los dos tiempos a la vez. Primero calculas el tiempo inicial, no lo guardas en ningun sitio (solo lo metes en una variable local a la funcion), luego vuelves a llamar a la funcion, calculas el tiempo final, le restas nada y lo imprimes, mostrando el tiempo final. Tal como lo tienes, tendrias que definir $tiempo_inicio en el ambito global (fuera de la funcion) para poder acceder a ese valor en las distintas llamadas a la funcion (no se si PHP tiene variables estaticas, que seria otra solucion).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 16:16.