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

Réseau/Web Python Discussion :

[httplib] Problème formulaire post PHP


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [httplib] Problème formulaire post PHP
    Bonsoir,

    Je souhaiterais me faire un petit script python me permettant de récupérer des données sans utiliser mon navigateur.

    J'explique :
    Un serveur web herbege une application php correspondant à ce un formulaire.
    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
    <form method='POST' action=blabla.php3 target='main'>
     
          <td>Nom : 
            <input type='text' name='precision' size='20' maxlength=Array[0]></td>
          <td><div align='right'>Prénom 
              <input type='text' name='precision2' size='10' maxlength=Array[1]>
    	<input type='hidden' name='cler' value='m5454tt'>
          <td>Sexe : 
          <input type='radio' name='reqid' value=210 checked>
          Masculin 
          <input type='radio' name='reqid' value=310> 
          F&eacute;minin </td>
              <input type='submit' name='Submit' value='Envoyer'> 
              <input type='reset' name='Submit' value='R&eacute;initialiser'>
     
    </form>
    Une fois qu'on a envoyé ces données, on est redirigé vers la page blabla.php3 ou est affiché le résultat sous forme de tableau.

    Moi je souhaiterais envoyer à ce serveur une requête http depuis mon python et récupérer les données.
    J'ai bien essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import httplib, urllib
    params = urllib.urlencode({'precision': 'dupont', 'precision2': 'jean', 'cler': 'm5454tt', 'reqid':'210'})
    conn = httplib.HTTPConnection("toto.com:80")
    conn.request("POST", "blibli.php3", params)
    response = conn.getresponse()
    data = response.read()
    conn.close()
    Mais je reçois une réponse du serveur me disant que la requête est invalide.
    Pouvez-vous m'aider ou m'orienter?

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Points : 290
    Points
    290
    Par défaut
    Bonjour,
    Dans ton code html, tu appels blabla.php3, et dans le code python blibli.php3. Soit j'ai pas compris ce que tu veux faire, soit c'est une erreur d'étourderie.

    Sinon peut être en utilisant urllib2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import urllib2, urllib
     
    url = 'blabla.php3:80'
    params = urllib.urlencode({'precision': 'dupont', 'precision2': 'jean', 'cler': 'm5454tt', 'reqid':'210'})
     
    req = urllib2.Request(url, params)
    response = urllib2.urlopen(req)
    print response.read()

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    en effet c'est une erreur lorsque j'ai copié mon code.
    Je testerais ton code quand je pourrais cependant j'ai une question :
    Dans mon code ou dans le tien on ne tient pas compte du target ? est-ce grave ?

    Merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Points : 290
    Points
    290
    Par défaut
    Dans mon code ou dans le tien on ne tient pas compte du target ? est-ce grave ?
    Non, je pense pas. Le target sert juste à indiquer au navigateur où afficher blabla.php3.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci,
    j'ai remarqué que la valeur de cler changeait surement à chaque nouvelle session.
    J'ai du donc faire un get de la page contenant le formulaire puis faire un post.

    On notera que le :80 chez moi me renvoie une erreur de type uknow url type.

    Le code "finale" donne donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import urllib2
    url = 'http://www.toto.com/blabla.php3'
    params = urllib.urlencode({'precision': 'dupont', 'precision2': 'jean', 'cler': 'fkjhgfjkg', 'reqid':'210'})
    req = urllib2.Request(url, params)
    response = urllib2.urlopen(req)
    print response.read()
    Merci à nyko77

Discussions similaires

  1. [AJAX] AJAX- POST - PHP
    Par BOLARD dans le forum AJAX
    Réponses: 2
    Dernier message: 11/02/2011, 08h18
  2. problème formulaire( html+php)
    Par eric204044 dans le forum Langage
    Réponses: 2
    Dernier message: 03/06/2010, 12h04
  3. Problème formulaire contact PHP
    Par cortobm dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2008, 11h27
  4. Problème formulaire POST avec SSO
    Par niluge22 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 23/07/2007, 17h35
  5. Problème Formulaire + popup + page PHP
    Par nesbla dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

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