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 :

Envoyer des données POST à une page !


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Envoyer des données POST à une page !
    Bonjour !

    Je cherche à envoyer des données POST à une page depuis une page où ont déjà eu lieu des premiers traitements.

    J'ai essayé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    			$HTTP_POST_VARS['subject']="un sujet qui va bien";
    			$HTTP_POST_VARS['mode']="newtopic";
    			$HTTP_POST_VARS['topictype']=0;
    			$HTTP_POST_VARS['f']=7;
    			$HTTP_POST_VARS['message']="kikoo";
    			header('Location: forum/posting.php');
    Mais ça ne marche pas : je suppose que les variables ne sont valables que sur cette page et pas sur posting.php.

    Queqlu'un sait comment faire ? sachant que je ne peux pas mettre des champs <hidden> sur cette page intermédiaire car le header doit apparaître avant toute sortie HTML...

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Salut,

    effectivement cela ne fonctionne pas ainsi car les variables globales post&get sont attribué par PHP, mais les attribué soit même ne sert à rien.

    bref, voila un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?
    // Les données envoyées en POST sous forme d'url
    $data = 'txt1='.urlencode($txt1).'&txt2='.urlencode($txt2).'&id='.$id_session;
     
    // monfichier.php3 est l'URL du fichier devant recevoir la requete POST 
    $message  = "POST /monfichier.php3 HTTP/1.0\r\n";
    $message .= "Content-type: application/x-www-form-urlencoded\r\n";
    $message .= "Content-length: ".strlen( $data )."\r\n";
    $message .= "\r\n";
    $message .= $data."\r\n";
     
    // monserveur correspond au serveur qui doit recevoir la requete
    $fd = fsockopen( "monserveur", 80 );
    fputs($fd,$message);
    fclose($fd);
    ?>
    source > http://www.phpinfo.net/astuces/astuces110.html

    Si tu veux plus d'infos sur les headers HTTP, direction la RFC : http://www.w3.org/Protocols/rfc2616/rfc2616.html

    avis aux admins&modos :
    Se serait peut être bien de mettre un equivalent dans les scripts de dvp.net, non ? A moins qu'il n'y en ai deja un.

    voila,
    bye

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    ça m'a l'air parfait merci bien

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    En fait j'ai un léger problème :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?
    $mode="newtopic";
    $subject="topic qui rulez";
    $f=7;
    $message="le message qui va bien";
     
    // Les données envoyées en POST sous forme d'url
    $data = 'mode='.urlencode($mode).'&subject='.urlencode($subject).'&f='.urlencode($f).'$message='.urlencode($message);
     
    // monfichier.php3 est l'URL du fichier devant recevoir la requete POST
    $message  = "POST ../forum/posting.php HTTP/1.0\r\n";
    $message .= "Content-type: application/x-www-form-urlencoded\r\n";
    $message .= "Content-length: ".strlen( $data )."\r\n";
    $message .= "\r\n";
    $message .= $data."\r\n";
     
    // monserveur correspond au serveur qui doit recevoir la requete
    $fd = fsockopen( "localhost", 80 );
    fputs($fd,$message);
    fclose($fd);
    ?>
    Quelqu'un voit une erreur bête ? J'ai rien qui s'ajoute à la BDD (malgré le traitement dans posting.php qui marche via un formulaire normal) et ya pas de message d'erreur...


    Sinon, si quelqu'un à un lien qui explique la procédure à suivre pour faire un post de message dans phpBB depuis ailleurs je suis preneur

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    $fd = fsockopen( "localhost", 80 );
    localhost tu est sur que cela fonctionne ? Essaie sur 127.0.0.1.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Si tu veux utiliser "localhost" à la place de "127.0.0.1" il faut auparavant le définir dans le fichier "hosts" situé dans :
    C:\WINDOWS\system32\drivers\etc
    MacBook Pro 15"
    "La pensée nous permet de rêver, le rêve de vivre".
    My WebSite

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    idem avec 127.0.0.1

    J'ai pourtant copier coller le code en changeant simplement la page de destination...

    l'url de destination doit être relative à la page ou en absolu sur le serveur ?

  8. #8
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    absolu ! ton point de départ étant localhost ou 12.0.0.1 (qui sont les même bien sur).

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Re !

    Alors après quelques tests, il s'avère que cela marche si le fichier cible est à la racine, sinon non.

    Ca marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $message  = "POST /monfichier.php3 HTTP/1.0\r\n";
    Ca marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message  = "POST /forum/monfichier.php3 HTTP/1.0\r\n";
    Comment suis-je censé écrire le répertoire pour que cela marche ?

  10. #10
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Pourtant sa devrait. Quel est le code d'erreur HTTP ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    euh je peux pas te dire la page ne me renvoie rien

    D'après toi cette syntaxe est bonne ? (slashs...)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Ca marche !

    Merci mon dieu.

    Le problème ?

    phpBB veut qu'on lui envoie la valeur de submit... qui vaut "Envoyer". Bizarre. mais ca marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer des données sur une page HTML à partir de Delphi
    Par gillou026 dans le forum Débuter
    Réponses: 18
    Dernier message: 29/05/2013, 01h16
  2. Envoyer des données pour une page qui s'ouvre sous forme popup
    Par wassimbik dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/07/2009, 21h54
  3. Envoyer des données d'une formulaire vers une BD dès le chargement d'une page
    Par rebhihabib dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 11/03/2008, 01h33
  4. Réponses: 1
    Dernier message: 10/03/2008, 12h56
  5. Envoyer des données POST à une page web puis récupérer l'URL
    Par Ze moi dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/04/2007, 17h18

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