begin process at 2012 05 31 06:07:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Portée de variable globale


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Portée de variable globale

jeudi 31 août 2006 à 09:56:13 | Portée de variable globale

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Bonjour à tous !

J'ai un petit problème de portée de variable :
Dans un fichier common.php, je déclare ma variable en globale :
global $MaVariable;

Dans une fonction de ce même fichier common.php :
function toto() {
global MaVariable;
MaVariable = "toto";
}

Dans un fichier index.php :

include_once("common.php");
toto();
echo MaVariable; //m'affiche bien la valeur toto.

Ensuite, j'enlève le echo MaVariable; et je met une redirection header("Location: 'toto.php'");

et là, dans toto.php, si je fais :
include_once("common.php")
echo MaVariable;
Il n'affiche rien :( On dirait qu'il a perdu la valeur de la variable dans la redirection !

Alors comment faire pour conserver la valeur de ma variable dans la redirection ? (si possible sans passer par une variable de session).
jeudi 31 août 2006 à 10:27:53 | Re : Portée de variable globale

malalam

Administrateur CodeS-SourceS
hello Dark,

tu dois rappeler ta fonction toto () dans toto.php, puisque c'est elle qui conditionne la mise en "globals" de ta variable toto.
Dans index.php, tu lances toto (), donc ta variable existe effectivement.
Mais avec le header, tu changes de page, les variables ne peuvent pas être globales sur différentes pages (comme pour des fonctions, des classes, etc). Donc, il faut relancer toto.
Du coup...pourquoi définir une fonction toto ?

common.php :
$sMaVar = 'toto';

index.php:
require_once 'common.php';
echo $sMaVar; // affiche toto
// on commente la ligne précédente et on met :
header ('Location: toto.php');

toto.php:
require_once 'common.php';
echo $sMaVar; // affiche toto
jeudi 31 août 2006 à 16:04:42 | Re : Portée de variable globale

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Bon tant pis, je vais passer par une variable de session alors, c'est bête cà quand même que les variables ne sont pas stockées d'une page à une autre !


jeudi 31 août 2006 à 16:43:41 | Re : Portée de variable globale

malalam

Administrateur CodeS-SourceS

Ben c'est le principe du web ;-)
C'est pour ça qu'on a les cookies, les sessions, ou/et les requêtes HTTP.
De ttes façons, si c'est une variable globale à tout le site, MAIS susceptible d'être modifiée durant une même session (par session, j'entends : session de navigation par un utilisateur, sans quitter ton site) : oui, il faut utiliser les sessions (cette fois, je parle des sessions php ;-) ). C'est le plus simple.


 

jeudi 31 août 2006 à 16:55:57 | Re : Portée de variable globale

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Bah là c'est juste en fait pour stocker un état de page : modification/suppression ou ajout. Donc c'est pas vraiment relatif à une session, mais plutôt à un petit groupe de page.

Et moi qui pensais qu'avec le php, tout (ou presque) était permis contrairement aux langages applicatifs !


vendredi 1 septembre 2006 à 09:31:11 | Re : Portée de variable globale

coockiesch

Salut!
Tout est permis:
- dans ta première page, tu crée un fichier .xml (au nom du sid)
- tu le récupère dans le deuxième

L'avantage de cette méthode, c'est que tu viens de gagner 500pts CS pour avoir fait plaisir à Malalam!! AieAieAie ( désolé, j'ai pas pû m'empêcher, c'est le matin, :$ )

@++

R@f



www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
vendredi 1 septembre 2006 à 10:01:36 | Re : Portée de variable globale

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
hein ?

Déjà que passer par une variable de session, je trouve ca un peu lourd, alors je vais pas m'encombrer en plus d'un fichier xml !
vendredi 1 septembre 2006 à 10:10:55 | Re : Portée de variable globale

coockiesch

Heu... c'était pas sérieux!

Je comprends pas pk ça semble si lourd de passer par des variables de session?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
vendredi 1 septembre 2006 à 10:29:12 | Re : Portée de variable globale

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Bah venant de la prog de logiciel, j'ai un peu de mal avec la portée des variables en PHP, et surtout, je comprends pas trop pourquoi il faut passer par des variables de session pour enregistrer une valeur d'une page à une autre sachant qu'on en aura plus besoin après => on enregistre la variable, on met sa valeur, on change de page, on lit la variable, on la détruit. Ca serait plus simple de n'avoir qu'une simple variable globale à un module et qui accessible uniquement dans le module.
Enfin bon, apparement, le monde de la prog web est bien différent du monde de la prog de logiciels ! Il faut juste changer d'état d'esprit. ;)


vendredi 1 septembre 2006 à 10:37:32 | Re : Portée de variable globale

coockiesch

Yep!
Mais bon, si c'était comme tu dis, les scripts prendraient bcp de place en mémoire: les vars de tous les modules seraient gardés auto en mémoire dans l'éventualité qu'on les ré-utilise...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

1 2

Cette discussion est classée dans : variable, php, toto, common, mavariable


Répondre à ce message

Sujets en rapport avec ce message

Recupérer variable javascript dans php [ par quinton75 ] Bonjour,[^^clinoeil1][^^clinoeil1] Je souhaite récupérer une variable javascript dans du PHP. A lire sur certains forums, il faut forcement rechagre Transformation chaine de caractère. [ par fritz931 ] Bonjour tout le monde, J'ai un soucis pour transformer une chaine de caractère qui me servira à alimenter Highcharts. En gros je récupère mon array so defaut de transmision avec url php html [ par profiter ] bonjour lorsque j'envoie une variable a l'aide d'un url aussi la var je la recupere de la base de donnees et s'affiche bien dans la premiere page alor Importation d'une variable par cookie [ par jrmy7 ] Bonjour à tous ! Comme vous le devinerez je débute en PHP. C'est la deuxième fois que je pose cette question, la première publication m'a permis de c [HELP] Probleme variable ' " . + [ par iamslyper ] Bonjour, Je suis en train de peter un cable complet. Si quelqu'un peut m'aider avec ceci : En gros, je dois inserer ceci [code=php]modifForm('add',' Inclure variable php dans embed src [ par bigbik ] Bonjour, Pour les besoins de mon site j'ai un lecteur audio intégré. voici le code : j'ai créé une variable $audio qui porte le nom du fichier à éc Recuperation de variable [ par lilyy59 ] Bonjour je voudrai uploader des images pour ensuite les rappeler sur un autre page mais je voudrais que ces images porte le nom de la variable défini convertir plusieurs variable en un tableau [ par 1030 ] Bonjour, me semble que c'est possible .... j'ai des variable [code=php]$nom = "mon nom"; $prenom = "asddfsd";[/code] et j'aimerais les faire passer recuperation donnée dans variable en local OK sur free.fr NOK [ par folow ] bonsoir les gens ... Voila je me suis remis au php depuis 3 semaines afin de mettre mon CV en ligne (passons) Et la problème, J'épluche google et tou php variable et header [ par marine34000 ] Bonjour, J'ai déjà réussi a mettre des variables dans un header, mais la je ne comprend ps je n'y arrive plus j'ai un variable queje dois passer nor


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales