Foros del Web » Programando para Internet » PHP »

ERROR PHP: Allowed Memory

Estas en el tema de ERROR PHP: Allowed Memory en el foro de PHP en Foros del Web. Estimados: Tengo un problema debido a que anteriormente usabamos un hosting nacional y por estabilidad nos cambiamos a otro, el cual no nos deja correr ...
  #1 (permalink)  
Antiguo 12/08/2009, 12:48
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
ERROR PHP: Allowed Memory

Estimados:

Tengo un problema debido a que anteriormente usabamos un hosting nacional y por estabilidad nos cambiamos a otro, el cual no nos deja correr una aplicación. Envía un mensaje similar a este:

Código PHP:
Fatal errorAllowed memory size of 33554432 bytes exhausted (tried to allocate 63116 bytesin ... 
Traté de aumentar la memoría php_value memory_limit 128M pero finalmente no funciono ¿Alguna idea como arreglar este problema?
  #2 (permalink)  
Antiguo 12/08/2009, 13:08
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: ERROR PHP: Allowed Memory

Que tal euforico

Si tu script se esta quedando puede ser que tengas un loop del cual nunca salis, te recomiendo que coloques tu codigo, no es recomendable que dejes que un script consuma tanta memoria.

Este es el parametro que tendrias que modificar/agregar en tu php.ini

memory_limit = 128M

Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #3 (permalink)  
Antiguo 12/08/2009, 13:21
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: ERROR PHP: Allowed Memory

Muchas gracias Ing_FOFO, el código es el siguiente:

Código PHP:
<?
function barra_link($cat,$txt)
 {
    
$sql "SELECT id,area,nombre FROM Categorias WHERE id = '$cat';";
    
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());
    
$array mysql_fetch_array($cad);
    
    if(
$cat == 1)
     {
        
$txt substr($txt,10);
        echo 
$txt;
     }
    else
     {    
        
$txt "&nbsp;&gt;&nbsp;<a href='anuncios.php?cat=".$array['id']."' class='Estilo16'>".$array['nombre']."</a>".$txt;
        
barra_link($array['area'],$txt);
     }
 }

 function 
subareas($cat)
 {
    
$sql "SELECT id,nombre FROM Categorias WHERE area = '$cat';";
    
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());
    
    
$aux['error'] = false;
    
    if(
mysql_num_rows($cad) == 0)
     {
        
$aux['error'] = true;
     }
    
    while(
$array mysql_fetch_array($cad))
     {
        
$aux[] = $array['id'];
     }
    
    return 
$aux;
 }

 function 
datos_categoria($cat)
 {
 
$sql "SELECT nombre FROM Categorias WHERE id = '$cat';";
 
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());

 
$array mysql_fetch_array($cad);

 return 
$array['nombre'];
 
 }
 
?>
  #4 (permalink)  
Antiguo 12/08/2009, 13:25
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: ERROR PHP: Allowed Memory

Hay dos formas de solucionarlo, según tengas acceso al php.ini o no

http://roninsparadise.blogspot.com/2...morylimit.html
__________________
http://www.controldegastos.com, acepto sugerencias para el sitio.
Repetir conmingo: "tengo que dedicar más tiempo a gozar de placer"
  #5 (permalink)  
Antiguo 12/08/2009, 13:35
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: ERROR PHP: Allowed Memory

Estimado:

No tengo acceso al PHP.ini, no sé PHP aún así bajo la línea puse el set_time_limit ();:

Código PHP:
$txt "&nbsp;&gt;&nbsp;<a href='anuncios.php?cat=".$array['id']."' class='Estilo16'>".$array['nombre']."</a>".$txt;
barra_link($array['area'],$txt); 
set_time_limit (90); 
Pero sigue sin funcionar, ¿Alguna otra idea de como solucionar esto?
Muchas gracias por su ayuda
  #6 (permalink)  
Antiguo 12/08/2009, 13:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: ERROR PHP: Allowed Memory

Bueno si no quieres tiempo limite escribe set_time_limit(0) pero eso en realidad no va a resolver tu problema. Te sugiero que escribas tu codigo para ver si tienes algo que sigue corriendo en un loop
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 12/08/2009, 13:41
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: ERROR PHP: Allowed Memory

@abimaerlc: Ya había subido el código, lo colocó nuevamente

Código PHP:
<?
function barra_link($cat,$txt)
 {
    
$sql "SELECT id,area,nombre FROM Categorias WHERE id = '$cat';";
    
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());
    
$array mysql_fetch_array($cad);
    
    if(
$cat == 1)
     {
        
$txt substr($txt,10);
        echo 
$txt;
     }
    else
     {    
        
$txt "&nbsp;&gt;&nbsp;<a href='anuncios.php?cat=".$array['id']."' class='Estilo16'>".$array['nombre']."</a>".$txt;
        
barra_link($array['area'],$txt);
     }
 }

 function 
subareas($cat)
 {
    
$sql "SELECT id,nombre FROM Categorias WHERE area = '$cat';";
    
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());
    
    
$aux['error'] = false;
    
    if(
mysql_num_rows($cad) == 0)
     {
        
$aux['error'] = true;
     }
    
    while(
$array mysql_fetch_array($cad))
     {
        
$aux[] = $array['id'];
     }
    
    return 
$aux;
 }

 function 
datos_categoria($cat)
 {
 
$sql "SELECT nombre FROM Categorias WHERE id = '$cat';";
 
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());

 
$array mysql_fetch_array($cad);

 return 
$array['nombre'];
 
 }
 
?>
Muchas gracias
  #8 (permalink)  
Antiguo 12/08/2009, 13:44
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: ERROR PHP: Allowed Memory

Usa ini_set('memory_size', '128M'); al principio de tu script para ajustar el consumo.

Saludos.
  #9 (permalink)  
Antiguo 12/08/2009, 13:46
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: ERROR PHP: Allowed Memory

El set_time_limit ponlo al principio del documento PHP

Y ahora ya entro en dudas, pero puede que también necesites ini_set('memory_limit','64M'); (también al principio del script.

Ahora mismo no sé cual es de los dos, ponle valores muy altos a los dos, y vete bajándolos según sea necesario
__________________
http://www.controldegastos.com, acepto sugerencias para el sitio.
Repetir conmingo: "tengo que dedicar más tiempo a gozar de placer"
  #10 (permalink)  
Antiguo 12/08/2009, 13:51
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
@GatorV: Puse ini_set('memory_size', "128M); arriba de la primera línea del código, pero no funciona, me sigue con el mismo error.

¿Alguna otra ayuda por favor?

@Ronin46: Coloqué ambas funciones al inicio del script en la primera línea, incluso arriba de "functions..." donde comienza pero aún así no funciono.

Muchas gracias de todas formas por tu ayuda, si alguien más me puede coperar lo agradeceré

Última edición por GatorV; 12/08/2009 a las 14:45
  #11 (permalink)  
Antiguo 12/08/2009, 14:46
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: ERROR PHP: Allowed Memory

En el unico lugar donde se te puede quedar loopeado es en el while de la funcion subareas; intenta esto:

Código PHP:
function subareas($cat)
 {
    
$sql "SELECT id,nombre FROM Categorias WHERE area = '$cat';";
    
$cad mysql_query($sql) or die ('ERROR 7:'.mysql_error());
    
    
$aux['error'] = false;
    
    if(
mysql_num_rows($cad) == 0)
     {
        
$aux['error'] = true;
     }
    
    if (
$array mysql_fetch_array($cad))
                                          {
                                               do{
                                 
$aux[] = $array['id'];                                                    
                                               
                                                  }while(
$array mysql_fetch_array($cad));
                                           }   
    
    return 
$aux;
 } 
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #12 (permalink)  
Antiguo 12/08/2009, 14:47
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: ERROR PHP: Allowed Memory

Verifica con tu hosting si tienen safe_mode activado, ya que si lo tienen no te va a servir usar memory_limit.

Saludos.
  #13 (permalink)  
Antiguo 12/08/2009, 14:56
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: ERROR PHP: Allowed Memory

Sigue dando error, por ejemplo el error sale aquí en: http://200.63.97.39/~nuestraz/anuncios.php?cat=57 y el código que estoy presentando es exactamente del archivo al que se hace alusión
  #14 (permalink)  
Antiguo 12/08/2009, 15:10
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: ERROR PHP: Allowed Memory

Que tal, al ver tu pagina pude observar a simple vista que es un error de LOOPEO, tenes algun While, algun Do, que no está saliendo.

Por lo que aunque pudieras configurar el PHP.ini lo unico que harias es aumentar el tiempo del error y esa no es una solucion.

Por lo que te aconsejo que mires en tu codigo algun bucle y que debugues tus archivos a puros ECHOS y DIES para que puedas ver que está sucediendo.

Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #15 (permalink)  
Antiguo 12/08/2009, 16:21
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago - Chile
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: ERROR PHP: Allowed Memory

¿Alguien tiene algún tutorial de esto?
Yo no se programar en PHP, pero si alguien me dice como hacerlo o me indica que debo hacer, lo intentaré.

Muchas gracias
  #16 (permalink)  
Antiguo 12/08/2009, 16:43
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: ERROR PHP: Allowed Memory

Chequeate este sitio:

http://gt.php.net/manual

Ahora con respecto a lo que te decia:

Mira cada While que tengas y colocas un echo $variable para ver el estatus de tu variable y colocas despues de ello un DIE para forzarlo a parar aunque haya algun while loopeado.

Espero te sirva ese manual y bienvenido al maravilloso mundo de PHP, recuerda que cualquier duda estamos para servirte.

Saludos desde Guatemala
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
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 20:09.