IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Redirection en simulant un POST


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut Redirection en simulant un POST
    Bonjour,

    Mon pb: j'ai un formulaire qui s'appelle lui-même pour vérifier la validité des champs et dans le cas (testé en début de pg) où c'est OK il redirige vers une autre page php en passant les paramètres saisis.
    Je peux le faire de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $data="champ1=xx&champ2=yy..."
    header ("Location: page_suivante.php?$data)
    Mais l'inconvénient est qu'on voit les $data dans l'URL. Donc je me propose de le faire en simulant un POST.
    J'ai essayé ça, trouvé quelque part:
    Au début de mon forumaire, je teste si déjà saisi et validé et dans ce cas je redirige comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $path = "page_suivante.php" ;
    $host = "localhost" ;
    $data = "champ1=xxx&..."
    header("POST $path HTTP/1.1\r\n") ;
    header("Host: $host\r\n" ) ;
    header("Content-type: application/x-www-form-urlencoded\r\n") ;
    header("Content-length: ".strlen($data)."\r\n") ;
    header("Connection: close\r\n\r\n") ;
    header($data) ;
    exit() ;
    Ca ne marche pas. Quelqu'un a-t-il une idée??
    Merci !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    cURL permet de générer des requêtes POST simplement.

  3. #3
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Une autre solution consiste à passer par une session et d'enregistrer temporairement les informations avant une redirection GET avec la fonction header('Location : xxxxx');.

    J'évite personnellement de changer de script pour traiter un formulaire. Je fais les vérifications + le traitement des données (typiquement insertion / update dans la base de données) à l'intérieur du bloc de code POST du script alors que le formulaire se trouve dans le bloc GET.

    Le seul moment ou j'ai réellement eu besoin de redirection POST était lors de l'intégration d'un système OpenSource (genre forum, calendrier, système de sondage). Je devais faire un formulaire spécial en dehors du système permettant d'enregistrer les données dans la base de ce système OpenSource. Plutôt que de refaire les insertions complètes, mon formulaire se comportait exactement comme tu le dis avec une redirection POST sur le traitement du système OpenSource après mes vérifications personnelles.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut fin
    Merci à tous les 2.
    Je pencherais pour la seconde solution.

    PS: concernant le second message, je ne suis pas sûr de comprendre:
    "à l'intérieur du bloc de code POST du script alors que le formulaire se trouve dans le bloc GET."
    Que veut dire le "code POST du script" et le "bloc GET" ?

    Merci encore.

Discussions similaires

  1. Simuler un POST sur serveur
    Par eomer212 dans le forum C++
    Réponses: 4
    Dernier message: 30/01/2008, 13h18
  2. Simuler un POST dans une JSP
    Par aswat dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/06/2007, 16h00
  3. Simuler un POST avec PERL
    Par aswat dans le forum Web
    Réponses: 11
    Dernier message: 23/05/2007, 11h57
  4. Redirection php avec données POST et fsockopen
    Par Cylie34 dans le forum Langage
    Réponses: 1
    Dernier message: 26/02/2007, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo