Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1471 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  debutant - garder mes variables d'une page à l'autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

debutant - garder mes variables d'une page à l'autre

n°1002615
miltonis
Posté le 06-03-2005 à 15:52:48  profilanswer
 

Bonjour,
ça fait un moment que je me tire les cheveux pour un probleme tout bête à coup sur. Avant de devenir chauve je fais appel à vous.
 
Je souhaite chnager l'entete de page suivant les pages chargees. j'ai créé un fichier de fonctions dont une me sert à déterminer l'entete à afficher suivant la page chargée. euh, j'sui clair là?  :heink:  
 
Sur ma page à charger j'utilise une variable $pageType à laquelle je donne la valeur '01'. Toujours de cette page, j'appelle avec un INCLUDE le fichier "entete.php" :

Code :
  1. $pageType = "tourisme_puno";
  2. $_SESSION['pageType']  = 'tourisme_puno';


 
De ce fichier entete, j'ai tapé ceci :

Code :
  1. include("classphp.php" );
  2. pageType($pageType);


 
et ma fonction dans "classphp.php" est du genre :

Code :
  1. function pageType() {
  2. echo $pageType;
  3. switch($pageType) {
  4.   case 'situation_xxxx:
  5.     $enteteFlash = "enteteFlash_xxxx.swf"; break;
  6.   case 'situation_yyyy:
  7.     $enteteFlash = "enteteFlash_yyyy.swf"; break;
  8.   case 'situation_zzzz:
  9.     $enteteFlash = "enteteFlash_zzzz.swf"; break;
  10. }
  11. }


 
je me suis documenté mais je dois mal m'y prendre, alors uncoup de main serait le bienvenu
merci d'avance :)  
 
 

mood
Publicité
Posté le 06-03-2005 à 15:52:48  profilanswer
 

n°1002636
omega2
Posté le 06-03-2005 à 17:15:37  profilanswer
 

Les variables déclarées en dehors d'une fonction donnée et qui ne sont pas indiqué comme variable globale ( global $var; ) ne sont pas visible à l'intérieur de cette fonction.

n°1002758
miltonis
Posté le 06-03-2005 à 19:37:06  profilanswer
 

salut omega,
 
et merci pour ta réponse, mais j'ai peur de mal m'y prendre car j'ai ce message en exécution :
   

Code :
  1. Notice: Undefined variable: pageType in c:\program files\easyphp1-7\www\perou\classphp.php on line 18
  2. Notice: Undefined variable: pageType in c:\program files\easyphp1-7\www\perou\classphp.php on line 19


 
je ne vois pas comment la variable ne peut être définie car j'ai bien mis avant ça :

Code :
  1. global $pageType;
  2. $pageType = "tourisme_puno";


 
que faire?  :heink:

n°1002775
omega2
Posté le 06-03-2005 à 20:04:25  profilanswer
 

Tu opourais nous copier tes fichiers exacts plustôt que des petits bouts par ci par là?
Comme ça, on poura voir dans quel ordre tout est exécuté.

n°1002793
miltonis
Posté le 06-03-2005 à 20:13:32  profilanswer
 

avec plaisir, les voici :
pour la page qui va être chargée :

Code :
  1. <?
  2. include("../links.php" );
  3. include("../words.php" );
  4. global $pageType;
  5. $pageType = "tourisme_puno";
  6. ?>
  7. <html>
  8. <head>
  9. ......
  10. </head>
  11. <body bgcolor="#C0A080" background="../Pics/fond_fond2.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" unload="linkDance();">
  12. <a name="puno_00"></a>
  13. <div align="center">
  14. <table bgcolor="#FFFFFF"  height="632" align="center" cellpadding="0" cellspacing="0" border="0">
  15. <tr>
  16.   <td background="../Pics/barre_bord_gauche.gif" width="11">&nbsp;</td>
  17.   <td width="400" align="left" style="padding-right:14px; padding-left:17px;">
  18.  <!-----  >ENTETE index  ----->
  19.  <? include("../entete2.php" ); ?>
  20. ......
  21. .....
  22. </body></html>


 
cette page appelle donc en INCLUDE le fichier "entete.php" que voici :

Code :
  1. <?
  2. include("classphp.php" );
  3. pageType($pageType);
  4. ?>
  5. <table cellpadding="0" cellspacing="0" border="0">
  6. <tr>
  7. <td colspan="3" height="100" valign="top" style="padding-top:2px";>
  8. <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
  9. WIDTH="710" HEIGHT="120" id="enteteFlash_Tourisme" ALIGN="">
  10. <PARAM NAME=movie VALUE="<? echo $enteteFlash; ?>"> <PARAM NAME=loop VALUE=false> <PARAM NAME=quality VALUE=best> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="<? echo $enteteFlash; ?>" loop=false quality=best bgcolor=#FFFFFF  WIDTH="710" HEIGHT="120" NAME="<? echo $enteteFlash; ?>" ALIGN=""
  11. TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
  12. </OBJECT>
  13. </td></tr>
  14. <tr><td colspan="3" height="7"></td></tr>
  15. </table>


 
et enfin, la focntion dans "classphp.php" un peu raccourci :
function pageType() {
 //echo $pageType;
 switch($pageType) {
  case 'situation_geographique' : $enteteFlash = "enteteFlash_situation.swf"; break;  
  case 'situation_demographique' : $enteteFlash = "enteteFlash_situation.swf"; break;  
  case 'situation_economique' : $enteteFlash = "enteteFlash_situation.swf"; break;  
  case 'situation_politique' : $enteteFlash = "enteteFlash_situation.swf"; break;  
  case 'tourisme_lima' : $enteteFlash = "enteteFlash_tourisme.swf"; break;  
  case 'tourisme_cusco' : $enteteFlash = "enteteFlash_tourisme.swf"; break;
}
}
 
voilà!  ;)

n°1002812
cerel
Posté le 06-03-2005 à 20:24:22  profilanswer
 

Tu appelles ta fonction comme ca :

Code :
  1. include("classphp.php" );
  2. pageType($pageType);


Ok, pas de probleme la dedans.
 
Mais regarde bien comment tu as defini ta fonction :

Code :
  1. function pageType() {
  2.   echo $pageType;
  3.   switch($pageType) {
  4.     case 'situation_xxxx: 
  5.         $enteteFlash = "enteteFlash_xxxx.swf"; break
  6.     case 'situation_yyyy: 
  7.         $enteteFlash = "enteteFlash_yyyy.swf"; break
  8.     case 'situation_zzzz: 
  9.         $enteteFlash = "enteteFlash_zzzz.swf"; break;
  10.     }
  11. }


 
T'as pas l'impression qu'il y a un probleme ??
 
Comme te l'as dit omega tu ne peux pas acceder, depuis l'interieur de ta fonction, aux variable non globales qui se trouvent en dehors de cette derniere.
Mais ca c'est plutot "un effet de bord" a cause de ton probleme.
 
Tu appelles une fonction avec un parametre. Ok.
Mais lorsque tu as defini ta fonction, tu ne lui as pas defini de parametre.
 
Tu as deux solutions pour resoudre ton probleme.
La premiere consiste a modifier la definition de ta fonction pour que tu puisse passer un parametre. C'est la meilleure solution, et d'apres ton code c'est ce que tu voulais faire.
 
La deuxieme solution consiste a faire en sorte que tu puisse acceder a la variable que tu veux depuis l'interieur de ta fonction. Cette solution n'est pas la bonne sauf dans quelques rares cas.


Message édité par cerel le 06-03-2005 à 20:25:11
n°1002832
miltonis
Posté le 06-03-2005 à 20:37:27  profilanswer
 

bravo c'est bien ça!! :D
juste une question et je ne vous emebete plus, est-ce qu'il me faut un "retour de fonction"? car ça n'a pas l'air de prendre en compte la valeur de la variable $enteteFlash après l'execution de la  focntion
merci encore

n°1002838
omega2
Posté le 06-03-2005 à 20:39:17  profilanswer
 

C'est sur que si tu lui dit pas qu'il doit retourner quelque chôse, il va rien retourner. ;)

n°1002847
miltonis
Posté le 06-03-2005 à 20:44:19  profilanswer
 

euh...quelle est la fonction stp?

n°1002852
naceroth
Posté le 06-03-2005 à 20:46:51  profilanswer
 

return ? :D

mood
Publicité
Posté le 06-03-2005 à 20:46:51  profilanswer
 

n°1002859
miltonis
Posté le 06-03-2005 à 20:48:49  profilanswer
 

ben oui, ...la honte!!!
merci les gars, ça devrait fonctionner maintenant
:D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  debutant - garder mes variables d'une page à l'autre

 

Sujets relatifs
Diverses questions de codage [Débutant]image + lien aléatoires à l'ouverture d'une page ... ??
PHP : garder les couleurs à l'exportautre problèmes: la récupération de variables dans script PHP
[PHP] recupérer le contenu d'une page dans une sessionLancer un programme depuis une page web
[+/-MFC] Visibilité de variables et fenêtre fille[debutant]applet java+echiquier
Modifier code d'une page distante en includeLecteur média player dans page HTML
Plus de sujets relatifs à : debutant - garder mes variables d'une page à l'autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR