gestion de variables dans une appli

Invité
Invité n'ayant pas de compte PHPfrance

04 févr. 2007, 22:29

Bonjour,
j'ai créé une petite application qui semble bien fonctionner. J'ai utilisé énormément de $_POST et $_GET pour récupérer des données qui circulent entre les nombreux fichiers. Ces données viennent d'une bdd.

Le problème: a chaque fois que je veux modifier ou ajouter des variables à traiter dans l'appli , je dois me retaper toutes les pages du fichier pour rajouter ceci:

if (isset($_POST['MaNouvelleVar'])) {
$MaNouvelleVar = $_POST['MaNouvelleVar'];
}

Pouvez vous me conseiller une meilleur façon de gérer la ciculation des variables dans une appli?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 févr. 2007, 23:48

Tu peux faire comme ceci :
foreach($_POST as $key => $val){
	$$key = $val;
}
Pour chaque couple clé/valeur de $_POST, cela va automatiquement affecter la valeur à une variable portant le nom de la clé. Du coup pas besoin de venir modifier/compléter quand tu ajoutes ou changes le nom d'une variable :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1996 Messages

04 févr. 2007, 23:51

Bonsoir,

Peut être que $_SESSION (les variables de sessions initié via session_start() ) peuvent t'aider. Ces variables sont valables dès que l'utilisateur entre les pages dans une session et jusqu'à qu'il en sorte (ferme le browser internet ou se délogue).

Exemple, si tu mets $_SESSION["nom"] = 'DUPONT'; en page 1 tu pourras retrouver (quasiment) cette variable dans n'importe qu'elle page ou session_start() sera inscrit.

De plus les variables de sessions sont stockés côté serveur et donc invisibles pour le client (l'utilisateur). Alors que les variables $_POST ou $_GET peuvent facilement lues. Peut - être est ce un aspect à ne pas négliger...

Enfin, dans ton exemple en page 1:
session_start();
$_SESSION["MaNouvelleVar"] = 'coucou';
Dans les autres pages :
session_start(); //obligatoire pour chaque page
$mavariable = $_SESSION["MaNouvelleVar"];
Dernier conseil, si tu créé des sessions, utilise session_regenerate_id(); pour éviter les fixations de sessions.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr