[Doc] Impossible de déterminer les dimensions de l’image.

Découvrez ici une liste de documents concernant phpBB: son installation, sa mise à jour et enfin son utilisation.
En bref, apprenez ici à vous servir de phpBB3!

Modérateurs: Equipe, Traducteurs

[Doc] Impossible de déterminer les dimensions de l’image.

Messagede lolovoisin le 22 Avr 2008 à 18:19

» Problème de taille d'image
Ce tutoriel va vous permettre de vérifier que la fonction getimagesize() fonctionne bien sur votre serveur.

» Message d'erreur
Il se peut que lors de l'insertion d'image sur votre forum, dans votre signature ou pour les avatars distants, lorsque vous avez défini des tailles d'images maximales, vous voyez apparaitre ce message:
Impossible de déterminer les dimensions de l’image.


Cela provient souvent du réglage de la fonction getimagesize() qui est limitée chez certains hébergeur aux fichiers locaux (voire désactivée pour certains) . Ceci explique pourquoi ces images n'apparaissent pas lors de l'insertion dans les signatures ou les avatars distants par exemple.

» Test de la fonction getimagesize()
Pour savoir si l'image que vous voulez mettre pose problème ou pas, essayez ceci:

Créez un fichier image.php
dedans mettez-y le code suivant en remplaçant la partie http://adresse_de_votre_photo par l'adresse internet de votre photo.
Code: Tout sélectionner
<?php
$url_img 
"http://adresse_de_votre_photo";

if (@
ini_get('allow_url_fopen'))
{
   if (!
function_exists(getimagesize))
   {
       echo 
'Function getimagesize() indisponible';
       exit;
   }
   else
   {
       
$info getimagesize($url_img);
       foreach (
$info as $key => $value)
       {
           echo 
$value."<br />";
       }
   }
}
else
{
   echo 
'URL file-access is disabled in the server configuration'."<br/>".
   
'Vérifiez que la valeur "allow_url_fopen" est à ON dans votre fichier php.ini sur votre serveur (si vous y avez accés)'."<br/>".
   
'Si vous ne pouvez pas y accéder, veuillez regarder la suite du tutoriel '."<a href=\"http://forums.phpbb-fr.com/viewtopic_145720.html\">ICI</a>";
   exit;
}

?>

Puis mettez-le sur votre serveur et exécutez-le ( http://www.votreforum.com/image.php )

Si tout se passe bien, alors vous devriez avoir une réponse ressemblant à:
800
533
2
width="800" height="533"
8
3
image/jpeg


/!\ NB:
Le bloc ci-dessus est un exemple ;)
Le résultat doit ressembler à ça, pas les valeurs ;)

» Résolution du problème.

Le problème semble surtout venir du réglage "allow_url_fopen" dans le php.ini.
Pour vérifier ce point, créez un fichier phpinfo.php, et mettez dedans:
Code: Tout sélectionner
<?php
phpinfo
();
?>

Puis mettez-le sur votre serveur et exécutez-le ( http://www.votreforum.com/phpinfo.php )
Dans la première partie (Configuration >>PHP Core ), cherchez la ligne "allow_url_fopen" et vous devez avoir en face ON.

Si ce n'est pas le cas, trois solutions possibles:
  • Si vous avez accès à votre php.ini, essayez de mettre ce réglage à ON, comme suit:
    Code: Tout sélectionner
    allow_url_fopen = On

  • sinon:
    OUVRIR: /includes/message_parser.php
    CHERCHEZ:
    Code: Tout sélectionner
             if ($stats === false)
             {         

    REMPLACEZ PAR:
    Code: Tout sélectionner
          if ($stats === false)
          {
             if (
    function_exists('curl_exec'))
             {
                
    $c_img curl_init();
                
    $c_timeout 8//The timeout, in seconds. You may want to change this
                
    $c_max_filesize 64000//The max file size loaded into memory
                
    curl_setopt($c_imgCURLOPT_URL$in);
                
    curl_setopt($c_imgCURLOPT_RETURNTRANSFER1);
                @
    curl_setopt($c_imgCURLOPT_BUFFERSIZE$c_max_filesize);
                
    curl_setopt($c_imgCURLOPT_CONNECTTIMEOUT$c_timeout);
                
    curl_setopt($c_imgCURLOPT_FOLLOWLOCATION,1);
                
    $grabbed_img = @curl_exec($c_img);
                
    curl_close($c_img);
                
    $stats[0] = $stats[1] = false;
                if (
    $grabbed_img)
                {
                   
    $grabbed_img = @imagecreatefromstring($grabbed_img);
                   
    $stats[1] = @imagesx($grabbed_img);
                   
    $stats[0]= @imagesy($grabbed_img);
                   unset(
    $grabbed_img$c_img);
                }
                if (!
    $stats[0] || !$stats[1])
                {
                   
    $stats false;
                }
             }
             

    Puis sauvez le fichier et renvoyez-le sur le serveur.
  • Si cette solution ne fonctionne pas et que vous n'avez pas accès au fichier php.ini sur votre serveur, la seule chose à faire, est d'essayer de contacter votre hébergeur pour savoir si celui-ci peut modifier ce réglage.
Avatar de l’utilisateur
lolovoisin
Resp. des supporters
Resp. des supporters
 
Messages: 13062
Inscription: 04 Mai 2006 à 13:16
Localisation: Dans la BDD ...

Retourner vers [phpBB 3.0.x] Forum de documentation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB3 Styles • phpBB podpora • Net Avenir • PromoBenef • Ticket Gagnant •