Page 1 sur 1

envoyer des variable en redirigeant sur une page

Posté : 03 mars 2007, 17:24
par Davee
Bonjour,

J'ai des variables dans un script php (je sais ça surprend)
Cette page php après avoir été lu et traitée redirige vers un autre script php avec la fonction header (location: patati...patata...)
et je voudrais passer des variables d'un script à l'autre.

Je peux pas passer par un formulaire html puisque le premier script ne s'affiche pas.
Et je trouve pas de solution. je sais pas si c'est Possible, mais s'il y a une soluce, je remercie d'avance la personne qui me mettra sur la voie.

Merci. :)

David.

(Edit: bufferisation: ob_start et autres... Est-ce une solution?)

Posté : 03 mars 2007, 18:04
par Ryle
Deux solutions dans ton cas pour passer des paramètres d'une page à l'autre avec un header() :
- la première consiste à passer tes variables en GET en les spécifiant dans l'url :

Code : Tout sélectionner

mapage.php?variable=valeur&variable2=valeur2
- la seconde consiste à ouvrir une session, stocker toutes les valeurs dont tu as besoin dedans, et de venir la lire depuis l'autre page pour les récupérer :)

Posté : 03 mars 2007, 18:11
par Davee
Ouf cool merci, ça me fait au moins un chemin à débroussailer.
C'est toujours un soulagement de venir sur PHP France :)

bon je sais pas trop comment me servir des sessions, je vais chercher un peu. (ça me fera l'occasion d'essayer )

Sinon je prendrait la fonction GET.

Merci encore
David. :)

Posté : 05 mars 2007, 15:50
par Davee
Bon, je suis aller fair un etit tour du coté des sessions
Comme vous m'avez déjà beaucoup aidé j evais mettre les scripts que j'ai trouvé et adapté. Ce sont des script très simple. qui peuvent peut-être en aider certain. sur les sessions.

Fichier formulaire.

Code : Tout sélectionner

<html> <body> <pre> <form method="post" action="session02.php"> <table border="0"> <tr> <td><u>Nom :</u></td> <td><input type="text" name="nom" size="20" value="lastname"></td> </tr> <tr> <td><u>Pr&eacute;nom :</u></td> <td><input type="text" name="prenom" size="20" value="firstname"></td> </tr> <tr> <td><u>eMail :</u></td> <td><input type="text" name="email" size="20" value="[email protected]"></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="soumettre" value="Envoyer"> </td> </tr> </table> </form> </pre> </body> </html>
Fichier traitement

Code : Tout sélectionner

<?php session_start(); $nom = $_POST['nom'];; $prenom =$_POST['prenom']; $email = $_POST['email']; $_SESSION['nom']=$nom; $_SESSION['prenom']=$prenom; $_SESSION['email']=$email; header("Location: session03.php?" . session_name() . "?". session_id()); ?>
fichier d'affichage des donnée stocké dans la session.

Code : Tout sélectionner

<html> <body> <p>&nbsp;</p> <pre> <?php session_start(); echo ("<u>Identifiant de session :</u> <b>". session_id() . "</b><br>"); echo ("<u>Nom de la session :</u> <b>". session_name() . "</b><br><br>"); echo ("<u>Nom :</u> <b>".$_SESSION['nom']. "</b><br>"); echo ("<u>Pr&eacute;nom :</u> <b>" . $_SESSION ['prenom']. "</b><br>"); echo ("<u>eMail :</u> <b>" . $_SESSION['email'] . "</b><br>"); session_destroy(); ?> </pre> <p>&nbsp;</p> </body> </html>
J'ai toute de même un petit souci avec l'ID de la session qui apparaîtdans l'adresse de la page.
Y a t-il un moyen pour masquer tout ça?

Merci
David.

Posté : 05 mars 2007, 15:53
par charabia
Puisque tu utilises les sessions, tu peux ne pas afficher l'id dans l'URL. Essaies sans, les sessions seront toujours en mémoire logiquement.

Posté : 05 mars 2007, 16:02
par Davee
:shock: ha ben oui! :oops: C'est pas faux!

top cool comme quoi, y a que le cerveau qui sait pourquoi on a mal aux pieds (cherchez pas y a pas de contrepetries).

Merci
David.