Allocation memoire - hebergement ?

payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 2 avril 2010 à 11:05
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 2 avril 2010 à 17:10
Bonjour,

J'utilise la fonction suivante lorsque j'upload une image :

function vignette($img, $img_dest, $width=0, $height=0)
{
  $size = GetImageSize($img);
  $src_w = $size[0];
  $src_h = $size[1];

  if($width != 0 | $height != 0)
  {
    if($src_w > $width | $src_h > $height)
    {
      if($src_w > $src_h && $width != 0)
      {
        //On retrecit la largeur
        $height = ceil(($src_h / $src_w) * $width);
      }
      elseif($src_h > $src_w && $height != 0)
      {
        //On retrecit la hauteur
        $width = ceil(($src_w / $src_h) * $height);
      }
    }
    else
    {
      $width = $src_w;
      $height = $src_h;
    }    
  }
  else
  {
    $width = $src_w;
    $height = $src_h;    
  }
  $ext = explode(".", $img);
  $ext = $ext['1'];
  $dst_im = ImageCreateTrueColor($width,$height);
  $trans_color = imagecolorallocate($dst_im, 255, 0, 0);
  if(!$dst_im)
  {
    return 0;
  }       
  if($ext 'jpg' or $ext 'jpeg' or $ext == 'JPG' or $ext == 'JPEG')
  {
    $src_im = ImageCreateFromJpeg($img);
  }
  elseif($ext == 'gif')
  {
    $src_im = imagecolortransparent($dst_im, $trans_color);
    $src_im = ImageCreateFromGif($img);
  }
  elseif($ext == 'png')
  {
    $src_im = ImageCreateFromPng($img);
  }
  else
  {
    return 0;
  }
  if (!$src_im)
  {
    return 0;
  }

  ImageCopyResampled($dst_im,$src_im,0,0,0,0,$width,$height,$src_w,$src_h);

  if($ext 'jpg' or $ext 'jpeg' or $ext == 'JPG' or $ext == 'JPEG')
  {
    ImageJpeg($dst_im,$img_dest);
  }
  elseif($ext == 'gif')
  {
    ImageGif($dst_im,$img_dest);
  }
  elseif($ext == 'png')
  {
    ImagePng($dst_im,$img_dest);
  }
  else
  {
    return 0;
  }
          
  ImageDestroy($dst_im);
  return 1;
}


CEtte fonction m'est super importante car elle me permet de réduire la taille des photos ajoutées sur mon site.

Or, ça me renvoi toujours un message :

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 2592 bytes) in /homepages/12/dxxxxxxxxxx/htdocs/payetonsite/www/includes/mapage.php on line 49

la ligne 49 cest celle ci :
$src_im = ImageCreateFromJpeg($img);


Pour info, je suis chez 1&1.

Je ne sais plus quoi faire là. Svp aidez-moi :'(

Merci d'avance

Ju'

9 réponses

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 avril 2010 à 11:39
Comme écrit sur la log, tu peux utiliser cette méthode mais l'allocation mémoire est limité pour faire cela.

Ce doit être un hébergement gratos, avec gd activé c'est déjà bien mais ... pas suffisant!

Solution : Louer et créer son serveur

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
2 avril 2010 à 12:47
Bonjour et merci!

Non, ce n'est pas un hebergement gratos.
Je n'ai pas de solutions pour palier à ça ?

Et si je décide de changemetn d'hebergeur, est-il possible de rappatrier ma base SQL étant sur mon ancien hebergeur ?



PS: (creer mon serveur : je ne sais pas faire)
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 avril 2010 à 14:11
Alors ils limitent...
Tu peux essayer ceci : ini_set("memory_limit","16M") ;
la doc est ici : http://php.net/manual/fr/function.ini-set.php

Sinon il faut reconfigurer via la conf php.ini et là tu es obligé d'avoir un serveur.

Ta base de données est exportable je sais pas si tu utilises un outils genre phpmyadmin ou similaire pour administrer ta base sinon et bien en SQL ou en php! Donc récupérable.

PS : c'est dommage >_<


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
2 avril 2010 à 14:58
Si, je peux modifier le php.ini mais meme 16M ne suffisent pas. et si j'augmente, POUF, erreur 500 !

Oui l'outil de 1&1 est sur une base phpmyadmin, mais comment faire pour l'exporter ?

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 avril 2010 à 15:09
Ah bin déjà pour ça c'est mort donc déjà faut changer d'hébergement !

Ensuite pour l'export, aussi loin que je me souviennes il y a un onglet export sous phpmyadmin donc suffit de cliquer et d'exporter la structure et les données.
/!\ c'est un export à l'instant t si des modifs surviennent il faudra les récup ou refaire un export.


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
2 avril 2010 à 16:31
Ok merci, et d'une base à une autre est-il possible de lier les table, ou meme mieux, lier les base ou lieu de faire un simple export ?
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 avril 2010 à 16:43
Tu parles d'un "backup temps réel" de ta base vers une base sur une autre machine ?


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
2 avril 2010 à 16:50
Oui c'est ça :) désolé si je ne suis pas explicite, je débute :)
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 avril 2010 à 17:10
Cette config est faisable mais là il faut mettre en place une architecture qui permette cela.
Cela dépend du site mais je doute que tu sois obligé de maintenir 86400s/86400s le site! Enfin si c'est le cas il m'a semblé avoir croisé le terme proxis qui permettent d'héberger un site sur une machine et utiliser une bdd sur une autre machine. Je ne pourrais pas vmt t'aider sur ça, je ne connais pas :/ sorry !


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
Rejoignez-nous