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 :

[Upload] Envoi d'un fichier vers un script PHP depuis l'extérieur...


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut [Upload] Envoi d'un fichier vers un script PHP depuis l'extérieur...
    Bonjour,

    Je vous explique succintement mon problème. Je doit envoyer des informations vers une base de donnée MySQL hébergé par un serveur free depuis des clients répartis dans toute la france. Pour des raisons de sécurité, free bloque l'accès de ses bases depuis l'extérieur. La seule solution pour y envoyer des informations est de passer par un script PHP.

    Or, compte tenu de la quantité d'information à envoyer, je suis obligé de passer par un fichier structuré XML. Problème; comment l'envoyer à mon script PHP. J'ai trouvé divers modules ( Python ) permettant d'encoder des variables pour les envoyer à un script PHP, mais aucun pour encoder des fichiers.

    D'où ma question: comment expédier des fichiers vers un script PHP, sans passer par un formulaire HTML ( envoi direct ) ?

    J'ai à ma disposition des sockets que je sais à peu près utiliser... Quelqu'un peut m'indiquer comment faire ?

    Merci beaucoup

    cyrille

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    pas besoin d'envoyer un fichier...

    une socket qui envoie une requête http avec ton flux xml dans l'entête en mode "POST",
    et le tour est joué
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Pouvez vous m'expliquer plus en détail ? Je connais mal le système de requête...

    Concrètement: ( si j'ai bien compris )
    - je créé mon socket;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s = socket.scoket(socket.AF_INET, socket.SOCK_STREAM )
    - je me connecte;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     s.connect(('uraniemc.free.fr', 80))
    - j'envoi une requête;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s.send('POST /dev/relyc/php/mon_script.php  -- et après je ne sais pas---')
    Pouvez vous s'il vous plait me dire si j'utilise la bonne procédure et quelle forme doit avoir la requête à envoyer ? Comment ensuite récupérer le flux dans PHP ?

    Merci beaucoup

    Cyrille

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Euh... il n'y a pas de rapport avec php là. Tu as un problème avec ton client écrit en python, donc demande comment utiliser les sockets à des gens qui connaissent python.
    Sinon si tu écrit ton client en php, tu auras plus de chance d'avoir une réponse ici

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Citation Envoyé par Mr N.
    Euh... il n'y a pas de rapport avec php là.
    Oui et non. En fait, ce que je voudrais savoir, c'est comment former la requête http et comment récupérer le fichier dans le PHP. Pour le Python, je m'en charge...

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Bon, ben moi qui n'est jamais fait de Python, c'est assez simple en fait :

    Voici mon code php assez simple, il fait juste un echo de ce qu'il recoit =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	header('Content-type: text/plain');
    	var_dump($_REQUEST);
    ?>
    Ce script est accessible grace à l'url http://localhost/test_python/

    Voici le code (tiré de la doc) pour l'attaquer =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import httplib, urllib
    params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
    headers = {"Content-type": "application/x-www-form-urlencoded",
               "Accept": "text/plain"}
    conn = httplib.HTTPConnection("localhost")
    conn.request("POST", "/test_python/", params, headers)
    response = conn.getresponse()
    print response.status, response.reason
    print response.read()
    response.close()
    Et voici ce qu'on obtient =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    C:\Python24>python test_python.py
    200 OK
    array(3) {
      ["eggs"]=>
      string(1) "2"
      ["bacon"]=>
      string(1) "0"
      ["spam"]=>
      string(1) "1"
    }
    Il ne te reste plus qu'a l'adapter à tes besoins

Discussions similaires

  1. Réponses: 14
    Dernier message: 14/03/2007, 19h32
  2. Réponses: 5
    Dernier message: 21/11/2006, 22h58
  3. Réponses: 6
    Dernier message: 07/11/2006, 11h44
  4. [Upload] Upload de fichier avec un script PHP
    Par largolgd dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 15h21
  5. Envoi de variables/fichiers vers un script PHP
    Par e-king dans le forum Réseau/Web
    Réponses: 9
    Dernier message: 02/04/2006, 19h44

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