Foros del Web » Programando para Internet » PHP »

memory limit, ini_set, dudas

Estas en el tema de memory limit, ini_set, dudas en el foro de PHP en Foros del Web. Les planteo mi situacion, tengo una pagina donde al administrador pueda crear albumes y subir fotos el problema es que despues de cierta cantidad de ...
  #1 (permalink)  
Antiguo 01/05/2009, 17:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 17
Antigüedad: 15 años, 11 meses
Puntos: 0
De acuerdo memory limit, ini_set, dudas

Les planteo mi situacion, tengo una pagina donde al administrador pueda crear albumes y subir fotos el problema es que despues de cierta cantidad de fotos me marca el error:
Fatal error: Allowed memory size of 8388608 bytes exhausted en la linea 25 de config.php, leyendo por internet vi que se podia modificar el valor de la memoria con la funcion ini_set() pero el script que ejecuto es igaleria.php que manda llamar esa funcion, mi duda es donde coloco el ini_set dentro de la funcion que esta en config.php o en scirpt igaleria.php?.

Otra duda es por que mi script jala bien por un tiempo y despues me marca error, que tipo de memoria es la que se satura y que puedo hacer aparte de ini_set para que este error deje de aparecer?
  #2 (permalink)  
Antiguo 01/05/2009, 17:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 17
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: memory limit, ini_set, dudas

Esta es la funcion dentro de config.php:
Código php:
Ver original
  1. function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
  2. {
  3.  
  4.     $img = ImageCreateFromJPEG($img_original);
  5.  
  6.     $thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
  7.  
  8.     ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
  9.  
  10.     ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
  11.     ImageDestroy($img);
  12. }
y esta es el script igaleria:
Código php:
Ver original
  1. <?php
  2.     session_start();
  3.     require("config.php");
  4.     if(isset($_SESSION["usuadmin"])){
  5.     $link = mysql_connect($sqll,$sqlu,$sqlp) or die("No se puede conectar a la base de datos: ".mysql_error());
  6.     mysql_select_db($sqlbd,$link) or die ("no se puede seleccionar la base de datos: ".mysql_error());
  7.     if(isset($_POST["galeria"])== FALSE){
  8.     $nombre=make_Safe($_POST["nombre"]);
  9.     $fecha=make_Safe($_POST["fecha"]);
  10.     $sql0="INSERT INTO ".$sqlbd.".albumes(id, nombre, fecha) VALUES(NULL,'".$nombre."','".$fecha."');";
  11.     mysql_query($sql0);
  12.     $sql1="SELECT albumes.id FROM albumes ORDER BY albumes.id DESC LIMIT 0,1;";
  13.     $res1=mysql_query($sql1);
  14.     $last_album=mysql_fetch_row($res1);
  15.     for($cont=0;$cont<5;$cont++){
  16.         $origen=$_FILES['userfile'.$cont]['tmp_name'];
  17.         $destino="ImgSml/".$last_album[0]."_".$cont."_sml.jpg";
  18.         $destino2="ImgBig/".$last_album[0]."_".$cont."_big.jpg";
  19.         $destino_temporal=tempnam("tmp/","tmp");
  20.         list($width,$height) = getimagesize($origen);
  21.         $type=$_FILES['userfile'.$cont]['type'];
  22.         $neww = 122;
  23.         $newh = 95;
  24.         if($type=="image/jpeg"){
  25.         redimensionar_jpeg($origen, $destino_temporal, $neww, $newh, 200);
  26.         $sql="INSERT INTO `".$sqlbd."`.`fotos` (`id` ,`id_album` ,`direccion_sml` ,`direccion_big`)VALUES ('NULL', '".$last_album[0]."', '".$destino."', '".$destino2."');";
  27.         mysql_query($sql);
  28.         $fp=fopen($destino,"w");
  29.         fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
  30.         fclose($fp);
  31.         }
  32.     }
  33.     for($cont=0;$cont<5;$cont++){
  34.         $des = 0.20;
  35.         $origen=$_FILES['userfile'.$cont]['tmp_name'];
  36.         $destino="ImgBig/".$last_album[0]."_".$cont."_big.jpg";
  37.         $destino_temporal=tempnam("tmp/","tmp");
  38.         list($width,$height) = getimagesize($origen);
  39.         $type=$_FILES['userfile'.$cont]['type'];
  40.         $neww = $width * $des;
  41.         $newh = $height * $des;
  42.         if($type=="image/jpeg"){
  43.         redimensionar_jpeg($origen, $destino_temporal, $neww, $newh, 200);
  44.         $fp=fopen($destino,"w");
  45.         fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
  46.         fclose($fp);
  47.         }
  48.     }
  49.     header("Location: ".$basedir."iniadmin.php");
  50.     }
  51.     else{
  52.     $album = $_POST["galeria"];
  53.     $sqla = "SELECT id FROM albumes WHERE nombre = '".$album."';";
  54.     $resu = mysql_query($sqla);
  55.     $id = mysql_fetch_row($resu);
  56.     $sqln = "SELECT id FROM fotos WHERE id_album = '".$id[0]."';";
  57.     $resn = mysql_query($sqln);
  58.     $num = mysql_num_rows($resn);
  59.     for($cont=0;$cont<5;$cont++){
  60.         $num2 = $cont+$num;
  61.         $origen=$_FILES['userfile'.$cont]['tmp_name'];
  62.         $destino="ImgSml/".$id[0]."_".$num2."_sml.jpg";
  63.         $destino2="ImgBig/".$id[0]."_".$num2."_big.jpg";
  64.         $destino_temporal=tempnam("tmp/","tmp");
  65.         list($width,$height) = getimagesize($origen);
  66.         $type=$_FILES['userfile'.$cont]['type'];
  67.         $neww = 122;
  68.         $newh = 95;
  69.         if($type=="image/jpeg"){
  70.         redimensionar_jpeg($origen, $destino_temporal, $neww, $newh, 200);
  71.         $sql="INSERT INTO `".$sqlbd."`.`fotos` (`id` ,`id_album` ,`direccion_sml` ,`direccion_big`)VALUES ('NULL', '".$id[0]."', '".$destino."', '".$destino2."');";
  72.         mysql_query($sql);
  73.         $fp=fopen($destino,"w");
  74.         fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
  75.         fclose($fp);
  76.         }
  77.     }
  78.     for($cont=0;$cont<5;$cont++){
  79.         $num3 = $cont+$num;
  80.         $des = 0.20;
  81.         $origen=$_FILES['userfile'.$cont]['tmp_name'];
  82.         $destino="ImgBig/".$id[0]."_".$num3."_big.jpg";
  83.         $destino_temporal=tempnam("tmp/","tmp");
  84.         list($width,$height) = getimagesize($origen);
  85.         $type=$_FILES['userfile'.$cont]['type'];
  86.         $neww = $width * $des;
  87.         $newh = $height * $des;
  88.         if($type=="image/jpeg"){
  89.         redimensionar_jpeg($origen, $destino_temporal, $neww, $newh, 200);
  90.         $fp=fopen($destino,"w");
  91.         fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
  92.         fclose($fp);
  93.         }
  94.     }
  95.     header("Location: ".$basedir."iniadmin.php");
  96.     exit;
  97.     }
  98.     }
  99.     else{
  100.         header("Location: ".$basedir);
  101.     }
  102. ?>
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 09:26.