Rechercher : dans
Par :

Envoyer une variable vers une page en PHP

Dernière réponse le 7 mai 2009 à 22:40:01 nico, le 25 fév 2001 à 14:34:11 
 Signaler ce message aux modérateurs

J'ai besoin de recuperer une variable dans une page auquel on accede par lien (ceci en php). cad que j'ai une variable sur une page et que j'ai definit un lien qui envoie sur une autre page et j'ai besion de recuper une variable de la premiere dans la deuxieme.
merci
@+
nico

1

PhP, le 25 fév 2001 à 17:05:54
  • +14

Slt nico,

J'ai déjà répondu sur ce site à ce genre de question ... mais je ne me souviens plus à qui ni quand !

Revoici donc le message (heureusement que je suis conservateur !)


Passer des variables Javascript d'une page à une autre :
______________________________________________

Pour passer une variable d'une page à une autre il existe plusieurs méthodes selon que tu utilises ou non des
cadres (frames) mais voici la plus simple et la plus employée :

Passer des variables Javascript en utilisant la propriété search de l'objet location


Tu as déjà du voir dans l'adresse de ton navigateur une url du style :
" http://www.monsiteweb.com/index.htm?aa=1&bb=2"
c'est là que réside toute l'astuce !

Bon voyons comment on fait ...

Supposons que tu as 2 pages html appelées page1.htm et page2.htm

Tu désires envoyer des variables de la page1 à la page2.

Page1.htm : l'envoi

<html>
<head>
<script language="Javascript"
<!--

// On passe 2 variables tant qu'à faire
var param1="var1";
var param2="var2";

function go()
{

// Force le navigateur à charger la nouvelle page (donc page2.htm) et en même temps lui envoie
// les paramètres dans la propriété window.location.search
window.location.href="page2.htm?param1="+param1+"&param2="+param2;

// Le fait de mettre 'param1=' et 'param2=' n'est absolument pas obligatoire pour JavaScript mais c'est + clair
// Par contre php attend les paramètre sous cette forme !!
// Voir partie nr 2
// Le point d'interrogation après le nom de la page lui est obligatoire
// Ensuite tu peux séparer chaque variable avec le caractère de ton choix, la règle veut que ce soit le "&"

}

// -->
</script>
</head>

<body>

<a href="javascript:go()">Vers la page 2</a>
</body>

</html>


Page 2 : la réception

<html>
<head>
<script language="Javascript"
<!--


// Ici on récupère les variables dans un tableau

var paramArray=window.location.search.substr(1).split("&")

/* Explication

Au départ :
window.location.search = "?param1=var1&param2=var2"

Ensuite on retire le "?" du début :
window.location.search.substr(1) = "param1=var1&param2=var2"

Puis on applique la méthode split() qui découpe la chaîne à chaque fois que le caractère "&" (ou un autre) est rencontré et enfin renvoie le tout dans un tableau :
window.location.search.substr(1).split("&")

Le tableau est paramArray : cool non !
*/


// Petite fonction que affiche les variables passées
function test()

for (i=0; i < paramArray.length; i++)
{
// Cerise sur le gâteau : en fait si la variable que tu passes
// contient un caractère spécial comme par ex un "!" alors
// dans window.location.search tu as %21 à la place.
// unescape() : remplace les séquences d'échappement par leur
// caractère correspondant
param=unescape(paramArray[i]);

alert(param);
}
// -->
</script>
</head>

<body onload="test()">
...
</body>
</html>


Comme je te l'ai dit il existe d'autres méthodes : si tu en as besoin voici mon e-mail :
phpujol@nexen.net


Passage de variables en utilisant Php :
________________________________

Le principe est le même que pour Javascript tout au moins pour l'envoie


Tu désires envoyer des variables de la page1 à la page2.

page1.php3 : l'envoi

<html>
<head>
<script language="Javascript"
<!--

// On passe 2 variables tant qu'à faire
var param1="var1";
var param2="var2";

function go()
{
window.location.href="page2.php3?param1="+param1+"&param2="+param2;
}

// -->
</script>
</head>

<body>

<a href="javascript:go()">Vers la page 2</a>

</body>

</html>

L'utilisation deJS n'est qu'un ex.
On peut aussi avoir :

<?php
$param1="10";
$param2="20";
?>
...

<a href="page2.php3?param1=<?php echo $param1; ?>&param2=<?php echo $param2; ?>">Vers la page 2</a>


Page 2 : la réception

Php va automatiquement créer pour toi les variables
$param1 et $param2 : tu n'as donc rien à faire !

page2.php3

<html>
<head>
</head>

<body>
...
<?php
echo "param1=".$param1."<br>";
echo "param2=".$param2."<br>";
?>
...
</body>
</html>

Une autre solution consiste à utiliser les formulaires : par ex avec un formulaire la page page1.php3 devient :

<html>
<body>

<form action="page2.php3" method="post">
<input type="submit" value="Vers la page 2">
Entrez le param 1 : <input type="text" name="param1">
Entrez le param 2 : <input type="text" name="param2">
</form>

</body>
</html>


Si tu ne désires pas saisir il suffit de transmettre les paramètres en tant que champs cachés ( hidden)

<form action="page2.php3" method="post">
<input type="submit" value="Vers la page 2">
<input type="hidden" value="<?php echo $param1; ?>" name="param1">
<input type="hidden" value="<?php echo $param2; ?>"
name="param2">
</form>

Ce qui est important c'est de bien donné un nom avec l'attribut "name" !

La page 2 reste inchangée !!




Ps : j'ai trouvé ces explications en anglais sur l'excellent site : http://www.wsabstract.com


Bye

Philippe

Répondre à PhP

2

sonali, le 16 avr 2007 à 17:19:35

Oui mais comment recuperer une valeur php pour l'envoyer sur une autre page php?

Répondre à sonali

4

Jean-François, le 17 jui 2007 à 14:40:18
  • +1

Pour récupéré la variable passé dans l'URL (méthode GET) ou de manière invisible (méthode POST) dans une autre il s'uffit d'utilisé $_GET["nom_de_la_variable"] ou $_POST["nom_de_la_variable"].

ex: $variable=$_GET["nom_de_la_variable"] ou $variable=$_POST["nom_de_la_variable"]
donc pour la méthode GET tu aura une URL du type
www.commentcamarche.net/page.php?nom_de_ma_variable=valeur

Répondre à Jean-François

3

jean4713, le 30 mai 2007 à 15:04:35

De passage.....
Philippe,
Merci pour cette info.

Répondre à jean4713

5

vpetitgi, le 10 sep 2007 à 09:57:23

Merci pour ces explications lumineuses,
j'en tire grand profit pratique et pédagogique
Vincent

Répondre à vpetitgi

6

PhP, le 10 sep 2007 à 14:48:11
  • +2

Bjr

Attention : mon message date un peu ... lol

S'il reste valable pour JavaScript en revanche en PHP il est impératif de passer par $_GET[] ou $_POST[] comme l'a dit Jean-François PhP  
Il y a 10 types de personnes dans le monde : ceux qui compre­nnent le binaire et les autres ...

Répondre à PhP

7

maya, le 25 oct 2007 à 15:09:22

Bonjour,
memes informations, je veux les transmettre vers 2 pages .php
le pb c'est que la méthode post ne marche que sur la première page mentionnée dans form.

et j'ai pas su comment utiliser la méthode des sessions

Répondre à maya

8

Manu, le 4 avr 2008 à 10:37:14
  • +1

Bonjour,

meme si le message date, l'utilisation des variables de session est tres simples:

$_SESSION['nom_variable']=valeur;



Et le tour est joué, voila une variable de session accesible à toutes tes pages php! ;) (pour pouvoir utiliser les variables de session, il faut ouvrir une session au debut de la page :

<?
/*on appel les fonctions utiles si besoin est*/

session_start(); /* on démarre la session */

Répondre à Manu

9

asmaa_twins, le 16 mai 2008 à 20:21:30
  • +1

Bonsoir,
Comment je peux rediriger vers une autre page avec l'appel d'une fonction comme paramètre.
C'est urgent s'il y a des réponse vous pouvez me l'envoyer à mon E-mail""-- khawla_2002@hotmail.fr --"".
Merci pour votre attention.

Répondre à asmaa_twins

10

nivramdu94, le 21 jan 2009 à 13:13:53
  • +5

Bonjour, pour transmettre des variables et de maniere cachée, utilisez les boutons cachés :

<html>
<head>
</head>
<body>
<form method="post" action="page_vers_laquelle_transferer_la_variable.php"
<input type="hidden" name="nom" value="les_donnees_a_transferer">
</form>
</body>
</html>

et pour les afficher en php sur la page voulue

<?php
echo $_POST['nom'];
?>

PS : J'ecris un peu en retard ! DSL


Utilisateur de linux ! :-)

Répondre à nivramdu94

15

 Sioux, le 7 mai 2009 à 22:40:01
  • +1

Merci beaucoup nivramdu94!

Ca m'a bien aidé ton astuce pour envoyer une variable cachée par formulaire.

<form method="post" action="page_vers_laquelle_transferer_la_variable.php">
	<input type="hidden" name="nom" value="les_donnees_a_transferer">
</form> 

Répondre à Sioux

11

oli51, le 8 fév 2009 à 21:07:20

Et si on veut transemttre une variable de dux mots avec get ??

xxx.php?album=balck album par exemple

php prends seulement le premier mot, soit black

les "" et les '' ne fonctionnemt pas

MERCI !!

Répondre à oli51

12

Fabou25, le 27 fév 2009 à 15:47:37

Tu mets tes 2 mots dans une variable.

$maVariable = "black album";

Ensuite tu feras :

xxx.php?album=<?php echo $maVariable; ?>

Répondre à Fabou25

13

Baklavadoll, le 10 mar 2009 à 21:18:47

Bonjour,
Merci, merci, merci pour ces conseils !
En passant d'un hébergement Lycos à OVH il y a 3 semaines, mon site PHP n'a plus bien fonctionner du tout. Après lecture de vos échanges, j'ai ajouté des lignes du type $variable=$_GET["nom_de_la_variable"] dans toutes les pages à problème et ... tadaaa ! ça fonctionne à nouveau !
J'espère ne pas trouver d'autres bugs mais j'ai bon espoir maintenant.
Encore merci :)
Baklavadoll, www.lecineclub.com

Répondre à Baklavadoll

14

ppdy, le 11 avr 2009 à 15:22:39
  • +1

Bonjour,

Je veux également récupérer les valeurs saisies sur une page formulaire.html vers une page traitement.php avec la fonction POST, afin de les envoyer par mail avec la fonction mail(), puis afficher une page de confirmation d'envoi confirmation.html.

J'ai l'impression que les valeurs récupérées dans la page traitement.php sont vides car je reçois bien le mail mais le corps du message est vide, et lorsque je fais des tests d'affichage des variables avec la fonction echo, rien ne s'affiche.

Ma page traitement.php vous semble-t-elle correcte ?

<?php
//Récupération des valeurs des champs du formulaire
$username = $_POST['username'];
$firstname = $_POST['firstname'];
$dateofbirth = $_POST['dateofbirth'];
//etc.

//Initialisation des variables
$destinataire='moi@monmail.com';
$subject='Nouvelle inscription';
$message='';
$entete='From: '.$destinataire;

//Tous les champs du formulaire sont ajoutés dans le message
$message .= "Username : $username\n";
$message .= "Firstname : $firstname\n";
$message .= "Date of birth : $dateofbirth\n"; 

//Envoi du mail
mail($destinataire,$subject,$message,$entete);

//Page de confirmation
header('Location: http://www.monsite.com/confirmation.html');
?>

Répondre à ppdy