Rechercher : dans
Par :

Passage de variables entre scripts PHP

Dernière réponse le 13 oct 2002 à 20:30:07 Nabla, le 10 oct 2002 à 13:36:45 
 Signaler ce message aux modérateurs

Y a-t-il une manière de capturer d'un coup toutes les variables transmises à un script PHP pour les transmettre à un autre script, via un formulaire ou un lien? Je trouve franchement nul d'écrire (comme je le fais actuellement) des lignes du genre
$variables="machin=$machin&truc=$truc&bidule=$bidule";
echo "<a href=script.php?$variables>..........

Meilleures réponses pour « Passage de variables entre scripts PHP » dans :
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...

1

chmanu, le 10 oct 2002 à 16:58:55

Salut
Je sais pas ce qui t amene a faire ca, mais une solution serai de mettre toutes des variables dans un tableau et ensuite, de faire une boucle qui t'affichrera :
<input type=hidden value=<?=$var[$i]?>>
que t inclue dans un formulaire.

Mais personnellement je m en sert jamais : je fais un script globale et selon le traitement a faire, tu fais un include du script dont tu as besoin.

Répondre à chmanu

2

Nabla, le 10 oct 2002 à 17:47:02

C'est pour naviguer entre des pages php en gardant un contexte. l'idéal serait que je puisse appeler toujours la même fonction sans donner le nom des variables.

Répondre à Nabla

3

jeromax, le 11 oct 2002 à 14:36:26

Y'a
- les cookies (genre un tableau de cookie)
- les variables sessions
- le passage en méthode post
- le passage en méthode get

sinon pour continuer dans ton idée, tu te créé une fonction qui t'écris dans ta page toutes tes variables
du coup tu as <a href=" http://site/page.php?<?php echo taFonctionQuiEcritTaListeDeVariables() ?>">lien</a>

moi j'utilise un tableau de cookies et ça marche bien.

Répondre à jeromax

4

Nabla, le 12 oct 2002 à 01:06:31

Je vois les options. Les cookies c'est sûrement le plus naturel, mais ça m'embête d'écrire des trucs côté client alors que je n'en ai pas besoin. J'avoue que je n'ai pas regardé comment marchaient les variables session, c'est peut-être ça ma solution.

Quant à écrire ma fonction, mon problème est que je ne sais pas récupérer le nom (et le nombre) des variables passées, ce qui est nécessaire pour que taFonctionQuiEcritTaListeDeVariables puisse être appelée depuis n'importe quelle page. Le problème est le même avec la méthode GET ou POST.

Répondre à Nabla

5

Nabla, le 12 oct 2002 à 18:50:30

J'ai trouvé :-))

Ce que je ne savais pas, c'est que $HTTP_POST_VARS permettait de récupérer non seulement les valeurs mais aussi les noms des variables. En fonction ça donne ça, au cas où ça intéresse quelqu'un:

function passer_variables($modeformulaire=0)
// En mode normal, transmet la liste de variables à copier après "URL?".
// En mode formulaire, du code HTML à placer dans le formulaire.
{
global $HTTP_POST_VARS;
$resultat="";
$deja=0;
while (list($nom,$valeur)=each($HTTP_POST_VARS))
{
echo "$nom : $valeur";
if ($modeformulaire)
{
$resultat .= "<INPUT TYPE=HIDDEN NAME=$nom VALUE=$valeur>";
}
else
{
if ($deja == 1) $resultat .= "&";
$resultat .= "$nom=$valeur";
$deja = 1;
}
}
return($resultat);
}

(testé en "mode normal")

Répondre à Nabla

6

dindonfou, le 13 oct 2002 à 15:43:18

Heu... réponse toute bete : tu fais <a href="lien.html?<?php echo $QUERY_STRING; ?>">Lien</a>, et ca te passes toute la chaine après le ?, cad les variables passées par GET...

mais il faut avouer que cette méthode (ou n'importe laquelle avec GET) est très peu sure, il vaut mieux passer par POST, les cookies ou les sessions...

thomas

Répondre à dindonfou

7

 Nabla, le 13 oct 2002 à 20:30:07

Argh, il y avait une variable $QUERY_STRING pour ça? Evidemment c'est plus simple, et comme pour l'instant je passe dans mes variables des infos pas confidentielles du tout, ça m'irait très bien aussi.

Répondre à Nabla