Passage de variable d'une page à une autre

Résolu/Fermé
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 17 juil. 2008 à 16:09
leon91490 Messages postés 166 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 9 septembre 2017 - 29 mai 2009 à 12:47
Bonjour,

J'utilise sur une page ( www/repertoire/script.php) une variable ( $var ) que je souhaite récuper dans une fonction située sur une autre page (www.fonction.php).
J'ai essayer le passage de variable avec include ("/repertoire/script.php") mais sa m'affiche toute la page.... or je ne veut que la valeur d'une variable...

J'ai lu quelques [tutos][url=http://www.lephpfacile.com/cours/21-la-portee-des-variables] mais etant novice je ne trouve pas la fonction adequate.

Pourriez vous m'aider svp ?
Merci
A voir également:

24 réponses

-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
17 juil. 2008 à 16:52
Oui je connaissais ce mode de passage de variable, mais est-ce le seul qui existe ??
Si l'on change la variable contenus dans l'url, le script changeras et le contenu de la page sera changer ... pas terrible non ? ..
4
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:15
Bonjour,

Tu as du texte qui s'affiche dans tes 2pages?

Si tu n'as que des fonctions dans ta page fonction.php, je te conseille de faire l'inverse : un include(fonction.php) dans ton script.php

Ainsi tu vas récupérer la fonction dont tu as besoin directement dans ton script.php et tu pourras y utiliser ta fonction avec ta variable.

J'espère avoir répondu comme tu voulais parce que je n'ai pas totalement compris ce que tu veux faire ...
2
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
17 juil. 2008 à 16:23
Salut,

Je resume. j'ai deux pages avec du texte des images.... et des fonctions php.

L'une est à la racine (page1) l'autre est dans un répertoire de la racine (page 2).
Le but de la manip est de récuperer une variable contenu dans ma page 2 pour pouvoir l'exploiter dans ma page 1 ...

: (
2
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:49
Et bien une solution consiste à passer d'une page à l'autre en conservant cette variable dans le lien.

Exemple :

Dans script.php tu met un lien vers "fonction.php?Variable=".$var

Puis sur fonction.php tu récupères cette variable gràce à : $_GET['Variable']

C'est ce que tu veux?
2
leon91490 Messages postés 166 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 9 septembre 2017 47
29 mai 2009 à 12:47
via les sessions..

tu fait
<?php
session_start (); // mets en route les sessions....

ensuite tu mets $_SESSION["var"] = $var;
?>
ca sur la premiere page... sur la seconde page
<?php
session_start ();

$var = $_SESSION ["var"];
?>

<a href = "fonction.php">envoyer vers page de fonction</a>




ensuite tu as un lien genre <a href = "toto.html">toto</a>
et dans toto.html tu as <a href = "titi.php">titi</a>

et tu retrouves ta variable $var dans titi....


et tu mets un lien pour fermer la session par exemple sur un clic "accueil"

<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
17 juil. 2008 à 17:08
@xxkirastarothxx, je ne vois pas vraiment comment faire malgrès les tutaux : https://apprendre-php.com/tutoriels/tutoriel-12-traitement-des-formulaires-avec-get-et-post.html

@Passarinho44, je ne peu pas me permettre de mettre le script sur la même page car c'est une variable qui est récuperer d'un champs et c'est censé étre définit par l'administrateur...

Le mieux est encore de mettre des valeurs à cette variable qui sont incompréhensibles pour l'utilisateur

Sauf que l'a c'est un entier que je veut transmettre !! :) le lien sera du type www.domaine.fr/index.php?var=6
très simple a modifier... lol


Sa reste la solution la plus plausible .. je vais l'essayer...

Merci a vous
2
xxkirastarothxx Messages postés 380 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
18 juil. 2008 à 11:27
La définition de DEFINE est en fait celle d'une constante et non plus d'une variable ;)

Ouais c'est vrai ^^

et pas trops compris comment faire le passage de variable par url

Roh quand même ^^

Exemple très simple:
l'url: index.php?page=news
dans la page index.php:
$_GET['page'] est égale a 'news'

Pour les Define, tu as l'air de mal t'y prendre:
exemple:
<?php
define("CITY", "Ville");
echo CITY;
?>

mettre une variable a la place de "Ville" ne devrai pas poser de problème je suppose, jamais test...
Edit: ça marche comme ça en tout cas:
$visit = "visiteurs";
define("VISITORS", "$visit");

Quant aux sessions, comme ça je vois rien de bizarre, ta valeur $max devrai être égale à 3 dans ta page index.php.
peut être à tu inclue ta page recup_variable.php dans ton index.php ?
Commence par faire des tests simples avec ce qu'on ta donné voir ce qui marche ou non.
2
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
28 juil. 2008 à 09:16
t bien une solution consiste à passer d'une page à l'autre en conservant cette variable dans le lien.

Exemple :

Dans script.php tu met un lien vers "fonction.php?Variable=".$var

Puis sur fonction.php tu récupères cette variable gràce à : $_GET['Variable']

C'est ce que tu veux?


En fait je ne veu pas de mettre de lien, je veut juste que par defaut ma page index.php soit construite d'une certaine manière en fonction des variables que je réupere sur une autre page ...

Quelqu'un pour m'aider? svp
2
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 juil. 2008 à 10:37
Salut,

avec la methode des sessions qui t'a été préconisée plus haut dans ce post tu as utilisé les varaibles à l'envers::

index.php : ligne 1 ...... <? php session_start();?>
ligne XXX ....$max = $_SESSION['nombre'];


recup_variable.php : ligne 1 ...... <? php session_start();?>
ligne XXX ....$_SESSION['nombre'] = "3" ;


si index.php est la source de la variable il faut:

<? php 
session_start();
$_SESSION['nombre']="3";
?>

attention session_start() doit être tout au début avant toute balise html ou autre




et dans la page destination tu récupéres par:
<? php
 session_start();
$max = $_SESSION['nombre']
?>
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
28 juil. 2008 à 10:53
Salut Alain_42,

C'est sympa de m'avoir expliqué avec un exemple concret . J'ai enfin reussi... Voici mon code pour ceux a qui sa intéresserais un jour ..

index.php :
 ligne 1 ............. <?php session_start();?>
ligne XXX ...........$max = $_SESSION['nombre'];



recup_variable.php :
ligne 1 ...........<?php session_start();?>

ligne XX........if( isset($_POST['nbr']) )
	...........$nbr=$_POST['nbr'];

ligne XXX ......$_SESSION['nombre'] = "$nbr" ;




Merci à toi et aussi aux autres membres qui ont participé a la discussion...
avec la methode des sessions qui t'a été préconisée plus haut dans ce post
J'ai du mal comprendre les autres exemples, désolé....

En tout cas pour être precis, tu es precis ;)

Bonne journée, a bientôt (sur d'autres problèmes php j'imagine ... :) )
2
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 juil. 2008 à 10:59
Ok bien content de t'avoir aidé

juste une petite rectif

ligne XXX ......$_SESSION['nombre'] = "$nbr" ;

il ne faut pas les " pour une variable mets:

ligne XXX ......$_SESSION['nombre'] = $nbr ;


avec les " la variable est interprétée quand même, mais il vaut mieux prendre l'habitude de ne pas les mettre

Cordialement

@lain
0
xxkirastarothxx Messages postés 380 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
17 juil. 2008 à 16:56
tu peux utiliser les $_GET, les $_POST pour faire passer d'une page a une autres, rien de mieux a ma connaissance.

Il y a d'autre façon aussi, vois les DEFINE qui servent a définir une variable sur tout le site, ou il y a aussi la possibilité de transité avec les variables de $_SESSION
1
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:58
Oui c'est sûr c'est pas terrible :s
En général on s'en sert pour garder le language ou d'autres choses peu importantes ...
Mais regarde le post où tu es est contenu dans le lien de la page et tu ne t'amuses pas à le changer, ça n'apporte pas grand chose.. :p

Le mieux est encore de mettre des valeurs à cette variable qui sont incompréhensibles pour l'utilisateur ^^

Sinon le seul moyen que je vois est de recopier ta fonction de fonction.php dans script.php mais c'est sûr que ça n'est pas optimisé...

Sinon je ne vois pas d'autre moyen personnellement... Désolé :s
1
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 17:16
Tu n'as qu'à essayer la variable de session.
C'est vrai que je n'y avais pas penser.

Si tu ne sais pas l'utiliser, vas voir ici : https://openclassrooms.com/fr/

Cherche le tutoriel dessus il est très bien fait =)
1
xxkirastarothxx Messages postés 380 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
17 juil. 2008 à 17:29
pour le Define c'est très simple:

DEFINE("TEST", "salut");
Echo TEST; // renvoie salut //

pour la variable de sessions c'est assez simple également, il faut que tu ajoute session_start(); en tout début (tout tout début) de ta page pour ouvrir une session, et ensuite tu peux ajouter des variables que tu souhaite, par exemple:
$_SESSION['ville'] = "Paris"
ce qui fait que de, normalement, n'importe ou tu peux appeler ta variable $_SESSION['ville'];

Il faut que la session_start() soit présent sur toutes les pages ou tu as besoin des variables de session ( seulement la page index.php, si transite tout par cette page)
pour plus de précisions, va effectivement voir le tutos du site du zero, très bien fait, on comprendre rapidement.

la difference principale entre les deux, c'est que DEFINE definie une varaible, pour tout le monde pareille, alors que pour les sessions sont gérées par utilisateurs, tu peux donc très bien appelé "$_SESSION['monpseudo']"

on utilise en général DEFINE pour des variables fixe, propres au site ( host, url, nom de site...), et $_SESSION pour des variables qui diffèrent entre chaque utilisateurs ( pseudo / niveau d'acces .....)
1
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 17:35
La définition de DEFINE est en fait celle d'une constante et non plus d'une variable ;)
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
17 juil. 2008 à 17:36
Merci a vous...

Le lien sur le site du zéro : https://openclassrooms.com/fr/courses#ss_part_4


je n'ai pas reussi a utiliser define, c'est ce qu'il me faudrais ... (et pas trops compris comment faire le passage de variable par url) :S

Mon script recupere la valeur d'un champs :

<?php
	if( isset($_POST['ok']) )// si formulaire soumis
	{ 
	
	if (isset($_POST['nbr']) )
	$nbr=$_POST['nbr'];
	else $nbr="0";	
	}
?>	


et sur mon autre page qui se trouve a la racine :

j'ai un petit
$max = $nbr;


c'est la variable $nbr que je veut faire passer du racine/repertoire/scriptphp au racine/script2.php
1
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 17:43
Essaie

$nbr = 1;
DEFINE(TEST, $nbr);

dans la première page
Et

echo TEST;

dans la seconde page

(je ne sais pas s'il est possible de mettre une variable dans le DEFINE donc rien de sûr hein ^^" , je pense même que ça ne fonctionnera pas mais qui ne tente rien n'a rien ;) )
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
17 juil. 2008 à 18:17
Y'a pas de raison que ça marche pas. Les variables ont peux les mettre presque partout.
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
18 juil. 2008 à 09:45
?? sa ne marche pas :

Notice: Use of undefined constant TEST - assumed 'TEST' in C:\Program Files\EasyPHP 2.0b1.... 
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
18 juil. 2008 à 11:22
Je vien d'essayer avec les $Post_[]; et $GET ...


recup_variable.php :

if( isset($_POST['nbr']) )
$nbr=$_POST['nbr'];

index.php :

$max = $_GET['nbr'];



M'enfin sa doit bien se faire un passage de variable d'un doc a un autre .... La j'avoue que sa me prends un peu la tête bloquer sur un truc aussi simple !!
1
xxkirastarothxx Messages postés 380 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
18 juil. 2008 à 11:31
recup_variable.php :

if( isset($_POST['nbr']) )
$nbr=$_POST['nbr'];

index.php :

$max = $_GET['nbr'];


la par contre y'a rien qui marche et c'est bien normal, je dirais que je comprends limite pas un mot du code xD
A voir le code tu pensais que POST servait a définir une variable, et GET pour la récupéré non ? en gros t'as rien lu des tutos ? :P

les Variable POST c'est pour passé les donnés via formulaire
par exemple si tu as un formulaire avec un champ <input type='text' name='test' />
tu pourra récupéré $_POST['test'], et cette valeur serra égale a ce que l'utilisateur aura entré dans le formulaire.

Le $_GET sert a récupéré les variables stroquée dans l'URL, j'ai mis l'exemple dans le post précédent.
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 juil. 2008 à 10:17
Personne pour m'éclairer ???

En resume :

Je recupere une variable depuis un formulaire.
Je doit passer cette variable pour pouvoir l'utiliser sur ma page d'accueil....

Comme la gestion des couleurs de certains forums par exemple !!
La couleur est definie sur une page d'administration et en fonction de cette variable on affiche un forum bleu ou rose ou vert .....
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
18 juil. 2008 à 11:01
Même le session start ne me donne rien ...

index.php : ligne 1 ...... <? php session_start();?>
ligne XXX ....$max = $_SESSION['nombre'];


recup_variable.php : ligne 1 ...... <? php session_start();?>
ligne XXX ....$_SESSION['nombre'] = "3" ;



8S ! Qué Pasa !
0