Foros del Web » Programando para Internet » PHP »

por que da error 500

Estas en el tema de por que da error 500 en el foro de PHP en Foros del Web. hola gente, tengo la siguiente funcion en el server, pero cuando se ejecuta dentro de un bucle da error 500 en el servidor. Código PHP: ...
  #1 (permalink)  
Antiguo 10/04/2013, 13:19
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
por que da error 500

hola gente, tengo la siguiente funcion en el server, pero cuando se ejecuta dentro de un bucle da error 500 en el servidor.

Código PHP:
  function Check($fecBD$id){

    
$datetime1 = new DateTime($fecBD);
    
$datetime2 = new DateTime('now');
    
$intervalo $datetime1->diff($datetime2);
    
    
$innt $intervalo->format('%a');

    if(
$innt <= 3):        
          
$arr = array('delete' => true'remarca' => 'color:#F00''blink' => 'blink'); 
          return 
$arr;
        elseif(
$innt === 0):
          
$arr_update = array('flag' => '0');
          
$this->update_array('ofertas'$arr_update"id='" .$id"'");        
    endif;      
    
  } 
por mas que le doy vueltas no veo por que da ese error

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 10/04/2013, 13:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: por que da error 500

Revisa el log de errores a ver que está pasando
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 10/04/2013, 13:28
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: por que da error 500

como es cloud hosting no tengo acceso a los logs...

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #4 (permalink)  
Antiguo 10/04/2013, 13:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: por que da error 500

Pues el código como tal se ve bien, deberías de contactar al administrador del hosting para que te de acceso a los logs y así puedas ver la causa puntual del error.
  #5 (permalink)  
Antiguo 10/04/2013, 14:06
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: por que da error 500

Holas, cadrogui.

A veces ocurren errores en el server cuando ejecutas una función en bucle debido al tiempo de ejecución que le toma a la máquina pasar de una iteración a la otra. Esto no lo sé porque lo haya leído, sólo lo intuí al ocurrirme en varias ocasiones, y al dejar de ocurrir al colocarle un sleep dentro del bucle. Esa podría ser una razón, pero otra podría ser, y sin conocer el funcionamiento de las clases que usas en tu código, que estés haciendo una llamada recursiva, que en algún momento elimine un objeto que estás usando en la función Check...

Si tienes acceso a algún portal de administrador del host (tipo cPanel), puedes consultar los logs, aunque te muestra sólo los últimos 300 registros más o menos: si puedes ver esto, prueba ejecutando tu página que da el error, y en seguida ver qué muestra el log.

Otra forma de depurar, es que agregues sentencias print y exit dentro de la función, de modo que sepas cuándo se cae.

Bueno, son ideas.
Suerte!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #6 (permalink)  
Antiguo 10/04/2013, 17:13
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: por que da error 500

aqui el log:


[10-Apr-2013 18:04:20] PHP Fatal error: Call to undefined method DateTime::diff() in /home/ofett/public_html/includes/db.class.php on line 411
[10-Apr-2013 18:05:08] PHP Fatal error: Call to undefined method DateTime::diff() in /home/ofett/public_html/includes/db.class.php on line 411
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #7 (permalink)  
Antiguo 10/04/2013, 18:04
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: por que da error 500

Para usar DateTime::diff necesitas mínimo una versión de PHP 5.3.0+, tendrás que adaptar la función con DateTime::modify (esta requiere PHP 5.2.0+)

http://php.net/manual/en/datetime.diff.php
http://www.php.net/manual/en/datetime.modify.php

edito: Si tu versión es menor a 5.2 usa strtotime mktime o alguna parecida.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: 500
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 11:11.