Problème avec la fonction fctaffichimage

Signaler
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011
-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Voilà la fonction que j'ai récupéré :
<?php // -----------------------------------------------------------------------------------------------------
// fonction de redimensionnement A L'AFFICHAGE
// -----------------------------------------------------------------------------------------------------
// La FONCTION : fctaffichimage($W_max, $H_max, $img_Src)
// Les parametres :
// - $W_max : LARGEUR maxi finale ----> ou 0 : largeur libre
// - $H_max : HAUTEUR maxi finale ----> ou 0 : hauteur libre
// - $img_Src : NOM de l image Source
// -----------------------------------------------------------------------------------------------------
// Affiche :  width="..." height="..." pour la balise img
// -----------------------------------------------------------------------------------------------------
function fctaffichimage($W_max, $H_max, $img_src){
 // ------------------------------------------------------------------
   // Lit les dimensions de l'image
   $img_size = GetImageSize($img_src);  
   $W_Src = $img_size[0]; // largeur
   $H_Src = $img_size[1]; // hauteur
 // ------------------------------------------------------------------
   // Teste les dimensions tenant dans la zone
   $H_test = round(($W_max / $W_Src) * $H_src);
   $W_test = round(($H_max / $H_Src) * $W_src);
 // ------------------------------------------------------------------
   // Si $H_max non précisé (0)
   if(!$H_max) { $H_max = $H_test; }
   // Sinon si $W_max non précisé (0)
   elseif(!$W_max) { $W_max = $W_test; }
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($H_test > $H_max) { $W_max = $W_test; }
   else { $H_max = $H_test; }
 // ------------------------------------------------------------------
   // (procedure : ne retourne aucune valeur mais ...)
   // AFFICHE les dimensions optimales
   echo ' width="'.$W_max.'" height="'.$H_max.'"';
}
// Affiche :  width="..." height="..." ?>
// 

Le code dans HTML :
" <?php fctaffichimage(80, 60,$url_pho1);?>/>


Le résultat :
___________________________________________________________
__________
| l'image: |
| url_pho1 |
|__________|
Notice: Undefined variable: H_src in /homez.194/touslesb/www/classes/annonce_fns.php on line 21

Notice: Undefined variable: W_src in /homez.194/touslesb/www/classes/annonce_fns.php on line 22
width="80" height="0"/>

____________________________________________________________

17 réponses

Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

Bonjour,

Je pense que le problème doit venir de l'url de la photo il faut qu'il soit de la forme phot.jpg par ex, l'url doit etre exactement le nom du fichier que tu veux passer dans ta fonction à la majuscule près, et avec le chemin de dossier exact.

Que met tu dans $url_pho1 ?


Voili voilou !
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

Comment dois-je faire pour utiliser ce résultat (qui sera un lien externe)?
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Es tu certain que la librairie GD est installée ? (GetImageSize est une fonction GD)


Cordialement,

Kohntark -
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

Ah?
ça s'installe où cette librairie?

Merci kohntark.
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

J'ai vérifié et elle est installé.

J'ai fais des testes et le problème vient du fait que mon appel est un lien http... plutôt que qu'une adresse /dossier/fichier.jpg ou autre.

Comment faire alors pour passer un lien, y a t-il une fonction qui permette de prendre en charge un lien externe directement?

Merci.
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Arf, j'ai dit des bêtises, cette fonction ne nécessite pas GD

J'avais lu trop vite :
$H_src !== $H_Src

Même pb pour W_src.

Cordialement,

Kohntark -
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Tiens nous au jus, tu as peut être un pb supplémentaire (du style allow_url_fopen)


Cordialement,

Kohntark -
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

Merci qd même Kohntark, j'ai l'impression que personne ne connait le réponse ici. je vais attendre un peut peut-être que Neige saura.
Bonne soirée.

Gnut.
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

J'ai fait des fautes, pardonnez-moi.
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Heu, avant de dire que personne ne connait la réponse il serait bien que tu commences par les lire, les tester, et nous donner les résultats ...

Je le redis donc :

$H_src !== $H_Src

Ou encore : le S est en majuscule dans un cas, et en minuscule dans l'autre.

Avec les infos que tu donnes et l'énoncé de ton problème c'est la solution.
Après, comme je l'ai dit, il y a peut être d'autre soucis, mais chaque chose en son temps.

Cordialement,


Kohntark -
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

Alors en fait ça fonctionne avec la nouvelle fonction que j'ai trouvée mais avec une adresse interne du genre : /dossier/fichier.jpg ou autre, mais pas avec une lien externe comme : http... Benco (ici sur Phpcs.com) m'a dit qu'il fallait apparemment un lien du type : /dossier/fichier.jpg

Ma question alors est, comment faire la même chose mais pour une adresse externe http://www... ?

Merci pour tous attention, Kohntark.

Fonction :
<?php function fctaffichimage($img_Src, $W_max, $H_max) {
 if (file_exists($img_Src)) {
   // ----------------------------------------------------
   // Lit les dimensions de l'image source
   $img_size = GetImageSize($img_Src);
   $W_Src = $img_size[0]; // largeur source
   $H_Src = $img_size[1]; // hauteur source
   // ----------------------------------------------------
   if(!$W_max) { $W_max = 0; }
   if(!$H_max) { $H_max = 0; }
   // ----------------------------------------------------
   // Teste les dimensions tenant dans la zone
   $W_test = round($W_Src * ($H_max / $H_Src));
   $H_test = round($H_Src * ($W_max / $W_Src));
   // ----------------------------------------------------
   // si l image est plus petite que la zone
   if($W_Src<$W_max && $H_Src<$H_max) {
      $W = $W_Src;
      $H = $H_Src;
   // sinon si $W_max et $H_max non definis
   } elseif($W_max==0 && $H_max==0) {
      $W = $W_Src;
      $H = $H_Src;
   // sinon si $W_max libre
   } elseif($W_max==0) {
      $W = $W_test;
      $H = $H_max;
   // sinon si $H_max libre
   } elseif($H_max==0) {
      $W = $W_max;
      $H = $H_test;
   // sinon les dimensions qui tiennent dans la zone
   } elseif($H_test > $H_max) {
      $W = $W_test;
      $H = $H_max;
   } else {
      $W = $W_max;
      $H = $H_test;
   }
   // ----------------------------------------------------
 } else { // si le fichier image n existe pas
      $W = 0;
      $H = 0;
 }
 // ----------------------------------------------------
 // AFFICHE les dimensions optimales
 echo ' src="'.$img_Src.'" width="'.$W.'" height="'.$H.'"';
}
// Affiche : src="..." width="..." height="..." pour la balise img
// ---------------------------------------------------------------------------------------?>


Dans HTML :
 />
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Dommage qu'il n'y ait pas eu de réponse de ta part sur ce que je te préconisais.
passons.

Quel est le résultat de ce nouveau script ?
As tu une erreur ? laquelle ? quelle est la ligne incriminée ?
Comment est définie $url_pho1 ? (je sais, tu l'as déjà dit, mais étant donné les changements redonner cette info ne serait pas du luxe)


Benco (ici sur Phpcs.com) m'a dit qu'il fallait apparemment un lien du type : /dossier/fichier.jpg


T'es tu renseigné sur ce que je disais il y a plus d'une heure ?
(du style allow_url_fopen)


Si oui qu'est ce que ça dit ? Si non, bah ... tu sais ce qu'il te reste à faire.
N'hésite pas à poser tes questions si il y a des points que tu ne comprends pas dans la doc.

Quel est ton type d'hébergement ? Local ? Mutualisé ? ...

Cordialement,

Kohntark -
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

J'ai vérifié les H h et S s comme tu m'as dit bien sûr.
Mais qu'est-ce que allow_url_fopen?

PS : hébergement OVH, Mutualisé.
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Désolé de me répéter une nouvelle fois :
Quel est le résultat de ce nouveau script ?
As tu une erreur ? laquelle ? quelle est la ligne incriminée ?
Comment est définie $url_pho1 ? (je sais, tu l'as déjà dit, mais étant donné les changements redonner cette info ne serait pas du luxe)

Je ne voudrais pas me faire désagréable, mais il serait appréciable que tu daignes répondre aux questions qui te sont posées. Ca éviterait aux membres qui te répondent d'avoir la néfaste impression de parler dans le vide.
Si tu ne comprends pas quelque chose dis le, mais réponds !!


J'ai vérifié les H h et S s comme tu m'as dit bien sûr.

Oui, ... et quel est le résultat ? As tu encore les erreurs que tu rencontrais ?


Mais qu'est-ce que allow_url_fopen?

... google "php allow_url_fopen" donne 115 000 résultats en 0,23 secondes

Ca serait un véritable plaisir de t'aider autant que je le peux, par contre je ne ferai ni recherche, ni re copiage de doc à ta place.

Je me permets donc de le redire :
N'hésite pas à poser tes questions si il y a des points que tu ne comprends pas dans la doc.



PS : hébergement OVH, Mutualisé.

En principe OVH met allow_url_fopen à ON

... si seulement tu répondais aux questions la résolution du problème irait sans doute bien plus vite.



Kohntark -
Messages postés
69
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
24 mai 2011

Excuse moi mais j'ai répondue à chacune de tes questions notamment que la nouvelle fonction que j'utilise FONCTIONNE BIEN et que :
Quel est le résultat de ce nouveau script ?
As tu une erreur ? laquelle ? quelle est la ligne incriminée ?
Comment est définie $url_pho1 ? (je sais, tu l'as déjà dit, mais étant donné les changements redonner cette info ne serait pas du luxe)

Il n'y a pas d'erreur...
je veux seulement savoir comment obtenir le même résultat (celui de fctaffichimage), mais pour un lien externe du type http//.www...

Et si tu n'as pas la réponse ce n'est pas grave je demanderais à quelqu'un d'autre.

Bonne soirée.
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Excuse moi mais j'ai répondue à chacune de tes questions notamment que la nouvelle fonction que j'utilise FONCTIONNE BIEN et que :


Heu, j'ai relu, au cas où, mais :
Dommage qu'il n'y ait pas eu de réponse de ta part sur ce que je te préconisais.
passons.

=> aucune réponse, si il y en a une merci de m'indiquer où (je parle là de mon message de 21h04)

Quel est le résultat de ce nouveau script ?

Tu dis :
Alors en fait ça fonctionne avec la nouvelle fonction que j'ai trouvée mais avec une adresse interne du genre : /dossier/fichier.jpg ou autre, mais pas avec une lien externe comme : http...

... aucune info autre que "mais pas avec une lien externe" n'est donnée.
Cela suppose donc que ça ne fonctionne pas, mais quel est le résultat exact ?
=> aucune réponse, si il y en a une merci de m'indiquer où

Comment est définie $url_pho1 ? (je sais, tu l'as déjà dit, mais étant donné les changements redonner cette info ne serait pas du luxe)

=> aucune réponse, et "c'est du type http//.www... " n'est pas une réponse, ... on pourrait même y voir une erreur
Est ce secret de mettre clairement comment tu définies ta variable ?
Ca pourrait avoir de l'importance.


... google "php allow_url_fopen" donne 115 000 résultats en 0,23 secondes

=> aucune réponse, si il y en a une merci de m'indiquer où
Es tu trop fatigué pour entrer ces quelques lettres dans Google ?
... et bien sûr faire l'effort de lire et comprendre la doc.

... j'ai un gros doute d'un coup.

N'oublies pas que c'est toi qui demande de l'aide.

Et si tu n'as pas la réponse ce n'est pas grave je demanderais à quelqu'un d'autre.

N'hésite surtout pas, on ne sait jamais (mais tu risques d'attendre longtemps), quelqu'un fera peut être ton boulot à ta place, mais je lui souhaites bon courage si tu ne daignes pas répondre aux questions simples dont toi seul à les réponses.


Kohntark -