8791 sujets

Développement web côté serveur, CMS

Bonjours a tous,

Ma question est assez simple en faite,
je développe actuellement une image d'un diagramme généré par php j'ai donc une arbo comme ceci

Receptacle.php qui appel image.php a travers la balise img

jusqu'ici tous va bien Smiley smile mais j'aurais besoin dans "Receptacle.php" de variables présent dans "image.php".

Et c'est la qu'est mon soucis; j'ai essayé d'utiliser include() mais évidement php veux me transformer "Receptacle.php" en image a cause du header('Content-type: image/png') de "image.php".

Sinon j'avais penser à séparer mon code en 3 fichiers:

Receptacle.php => Donne.php <= image.php

Mais ça me ferai reprendre une bonne partie de mon code

Comme je patine un peux a trouver une solution je me tourne vers vous pour me donner un coup de main Smiley smile
Modifié par Traxyl2en1 (24 Jun 2009 - 10:41)
Hello,

Peut-être avec le découpage suivant ?
- Une fonction qui contient ta logique générale et qui retourne un tableau contenant toutes les variables dont tu a besoin.
- Un fichier receptacle.php dans lequel tu fais appel à cette fonction et récupére ainsi les variables
- Un fichier image.php qui accepte en $_GET les parametres nécessaires à la constuction de l'image

Ainsi en gros dans receptacle.php tu fais un $mesVars = maFonctionGenerale(), tu as donc accès à toutes tes vars.
Puis tu fais un
<img src="image.php?foo=bar&var=truc" alt="Diagramme">

pour générer l'image.
Salut,

Donc selon toi je suis obliger de séparer le code qui contient les info que je veux réutiliser du code qui sert à l'exécution... ça m'arrange pas trop ça Smiley sweatdrop

Quand j'ai codé mon image je n'ai pas pensé que je devrais réutiliser ces infos autre part ^^

mais ta méthode est un bon compromis
Je pense que je ne vais pas y couper

Merci pour ton aide
c'est encore moi,

Alors voila ce que j'ai coder

Voici image.php

$AfficheImg = $_GET['AfficheImg'];

function imageDiagramme() {

...

   if($AfficheImg == 1) {
	imagepng($image);
	imagedestroy($image);
	return(header('Content-type: image/png'));
   } else {
       $test = "test";
       return($test);
   }
}//Fin de la fonction

$test2 = "Test22";

if($AfficheImg == 1) {
	imageDiagramme();
}



J'ai donc ecris que si $AfficheImg == 1, il lance la fonction et return le header('Content-type: image/png') sur lui meme pour qu'il ce transforme en image.
Du moins c'est ce que je souhaite ecrire.

Et voici le Fichier Receptacle.php

<?php
include_once "Image.php";

echo $test2;
					
if($R = imageDiagramme()) {
					
echo $R;
}
?>
<img src="Image.php?AfficheImg=1" height="500" width="615" />


J'obtiens comme resultat mon $test2 c.a.d. "Test22" et mon $R c.a.d. la ligne return($test) donc "test" mais mon image ne s'affiche pas.
Le probleme dois venir de mon return(header... , j'ai essayé sans: même resultat Smiley confus

Une idée ?
Modifié par Traxyl2en1 (24 Jun 2009 - 18:12)
Encore Encore moi,

Alors ne trouvant pas de solution j'ai abandonné la solution de la fonction

Pour mettre une simple variable de contrôle et voila ce que ça donne:


$Include = $_GET['Include']; 


if($Include == 1) {
	imagepng($image);
	imagedestroy($image);
	header('Content-type: image/png');
}


J'ai fais comme ça pour toutes mes ligne de code qui appartiennent a l'image, et ca fonctionne comme ça.

Merci à toi Tymlis pour m'avoir dirigé sur la bonne voix,
mais je cherche toujours la solution a mon problème du dessus
car je rencontrerais surement ce problème plus tard.

Donc si vous savez la solution n'hésitez pas Smiley lol
Modifié par Traxyl2en1 (29 Jun 2009 - 17:39)