Téléchargement
illégal
Posez votre question Signaler

Envoyer une variable vers une page en PHP [Résolu]

nico - Dernière réponse le 19 mars 2012 à 23:12
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
Lire la suite 

Envoyer une variable vers une page en PHP »

23 réponses
Réponse
+27
moins plus
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


Sioux - 7 mai 2009 à 22:40
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> 
Aurélien49 - 19 mars 2012 à 23:12
Merci, beaucoup pour l'astuce.
2009 à 2012, c'est cool le net
@+
Ajouter un commentaire
Réponse
+24
moins plus
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
Ajouter un commentaire
Réponse
+7
moins plus
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
Ajouter un commentaire
Réponse
+3
moins plus
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 */
Ajouter un commentaire
Réponse
+3
moins plus
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');
?>
Ajouter un commentaire
Réponse
+0
moins plus
oui mais comment recuperer une valeur php pour l'envoyer sur une autre page php?
Jean-François - 17 juil. 2007 à 14:40
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
Ajouter un commentaire
Réponse
+0
moins plus
De passage.....
Philippe,
Merci pour cette info.
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ces explications lumineuses,
j'en tire grand profit pratique et pédagogique
Vincent
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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 !!
Fabou25 - 27 févr. 2009 à 15:47
Tu mets tes 2 mots dans une variable.

$maVariable = "black album";

Ensuite tu feras :

xxx.php?album=<?php echo $maVariable; ?>
Baklavadoll - 10 mars 2009 à 21:18
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
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour
Comment récupérer 2 variable en post qui porte le même nom mes pas la même valeur
merci d' avance
gerrard88 - 10 mai 2010 à 12:43
salut webpages je penses que c'est pas du tout possible car si on mais le meme nom php prend en compte le premier qu'il rencontre et omet le dernier alors .. le mieux c'est de donner deux noms differents
webpages - 10 mai 2010 à 17:20
Merci pour ta réponse gerrard88
hero888 - 18 août 2010 à 17:52
moi j'aurai utilisé les sessions =)
d'abord, tu ouvre la session avec :
session_start();
ensuite
$_SESSION['variable'] = valeur;

$_SESSION['var'] est une variable super globale, et elle peut être utilisée tant que la session est ouverte.
Je pense que c'est un peu trop tard pour la réponse...mais ca peut servir a quelqu'un d'autre :)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour
Merci pour ta réponse hero888 mes c résolu a bientot
Ajouter un commentaire
Réponse
+0
moins plus
Merci Beaucoup Les amis.grace a vous j'ai trouvé la reponse
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,
je crois que ce que j'essaie de faire ,quelqu'un a la reponse :)
en clair je veu voir par exemple ce que fai une personne en temp réel
donc j'utilise jquery mais je n'arrive pas a rentrer ma variable dans ma requete sql
mon code :

<div id="mave" >
//c'est ici que s'affichera les personnes
</div>

<script type="text/javascript">
<!--

function online()
{

$.ajax({
type: 'GET',
url: 'update_ville.php',
success: function(data){$('#mave').html(data);}
});

}

// je lances l'exécution de la fonction chaque 3 secondes
$('document').ready(function(){
setInterval('online();',3000);
});
-->
</script>


mon fichier update_utilisateur.php :
select *
from historique
where id='$var'
;

dans le fichier ou ce trouve mon div ,je récupère l'id correspondant a l'utilisateur en php avant mon div

j'ai essayer ceci :

<div id="mave" >
//c'est ici que s'affichera les personnes
</div>

<script type="text/javascript">
<!--

function online()
{
var param1="$idc";
$.ajax({
type: 'GET',
url: 'update_ville.php?=+param1+',
success: function(data){$('#mave').html(data);}
});

}

// je lances l'exécution de la fonction chaque 3 secondes
$('document').ready(function(){
setInterval('online();',3000);
});
-->
</script>

mais il me marque pour ma variable : param1
merci !
Ajouter un commentaire
Ce document intitulé « envoyer une variable vers une page en PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?