envoyer des variable en redirigeant sur une page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : envoyer des variable en redirigeant sur une page

par Davee » 05 mars 2007, 16:02

: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.

par charabia » 05 mars 2007, 15:53

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.

par Davee » 05 mars 2007, 15:50

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.

par Davee » 03 mars 2007, 18:11

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. :)

par Ryle » 03 mars 2007, 18:04

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 :)

envoyer des variable en redirigeant sur une page

par Davee » 03 mars 2007, 17:24

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?)