Allocation memoire - hebergement ?

Signaler
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
-
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
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

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
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)
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
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.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
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 ?
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
4
Oui c'est ça :) désolé si je ne suis pas explicite, je débute :)
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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