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

Arduino Discussion :

Shield Ethernet 2 vers serveur PHP


Sujet :

Arduino

  1. #1
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut Shield Ethernet 2 vers serveur PHP
    Bonjour,

    J'ai programmé mon shield pour qu'il puisse envoyer à mon serveur PHP des relevés de température.
    Pour vérifier que la requête URL transmise à mon serveur soit bonne j'ai fait le test suivant en tapant dans mon navigateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monserver.com/arduino/controller.php?air_temp=25
    Pas de souci, mon serveur prend bien en charge la variable air_temp à la valeur 25. Donc la requête fonctionne.

    Alors dans mon sketch Arduino j'ai mis ceci:

    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
     
    //Envoi de la température
                char myserver[] = "www.monserver.com/";
                if (client.connect(myserver, 80))
                {
                  Serial.println("connected");
                  client.println("GET /arduino/controller.php?air_temp=25 HTTP/1.1");
                  client.println("Host: www.monserver.com/");
                  client.println("Connection: close");
                  client.println();
                }
                else
                {
                  // if you didn't get a connection to the server:
                  Serial.println("Connection failed to Server");
                }
    Mon moniteur série affiche bien "connected" mais mon serveur PHP semble ne pas recevoir la variable air_temp. Pourquoi ?

  2. #2
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Rebonjour à tous,

    Personne pour m'aider sur le sujet. J'ai beau lire d'autres tuto sur le même principe qui semble fonctionner chez d'autres. Pourquoi mon serveur PHP ne reçoit pas la variable air_temp ?

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    as-tu un message d'erreur ?

  4. #4
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Non, pas de message d'erreur, , mon moniteur série affiche connected donc je suppose, je dis bien je suppose, que mon shield a bien trouvé mon serveur et le fichier controller.php. Mais la variable transmise en methode GET ne semble pas être prise en compte contrairement à un essai avec mon navigateur...
    Où ça coince ?

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonjour

    if (client.connect(myserver, 80)) sera toujours prit car client.connect retourne un int avec la valeur 1 en cas de succès et des valeurs négatives (-1 à -4) en cas d'échec. Hors seule la valeur 0 est considérée comme un false, pour toutes les autres c'est un true (donc également -1 à -4).

    Faire déjà if (client.connect(myserver, 80)==1) devrait aider.
    Ensuite récupérer l'int dans une variable et l'envoyer sur le serial.

    Sinon tu as bien un Ethernet.begin(mac, ip, dns); avant le code que tu posts? Sinon ton shield n'est simplement pas connecté au RJ45.

    Bonne fin de week-end

    Delias

  6. #6
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Mon shield est bien connecté au RJ45 puisqu'il reçoit des données d'un Javascript qui tourne bien.
    J'ai rajouté la variable checkConnect dans mon sketch:
    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
     
    int checkConnect = client.connect(myserver, 80);
    Serial.print("checkConnect: ");
    Serial.println(checkConnect);
    //Envoi de la température
                char myserver[] = "www.monserver.com/";
                if (client.connect(myserver, 80))
                {
                  Serial.println("connected");
                  client.println("GET /arduino/controller.php?air_temp=25 HTTP/1.1");
                  client.println("Host: www.monserver.com/");
                  client.println("Connection: close");
                  client.println();
                }
                else
                {
                  // if you didn't get a connection to the server:
                  Serial.println("Connection failed to Server");
                }
    Elle retourne -5 dans mon moniteur série....

    Autre chose, j'ai essayé d'enlever le slash après .com dans char myserver[] donc char myserver[] = "www.monserver.com"; Et là, checkConnect me retourne 0 suivi du message Connection failed to Server.

    Je ne comprends rien!!!

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir

    Ton code a quand même des erreurs grossières:
    char myserver[] = "www.monserver.com/"; est placé après int checkConnect = client.connect(myserver, 80); alors qu'il doit être avant.
    Ensuite tu fais deux connect -> ça ne peut que faire des problèmes!

    Tout les connects sont bien dans la partie Setup? Car si ils sont dans la boucle, tu ouvres à chaque fois une nouvelle connexion et la puce du shield va très vite saturer (max 8 sockets selon la description).

    ton code devrait être:
    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
    22
    23
    24
    25
    26
     
    // partie dans le setup()
    char myserver[] = "www.monserver.com/";
    Serial.print("IP: ");
    Serial.println(Ethernet.localIP()); // pour vérifier la connexion au Switch
     
    int checkConnect = client.connect(myserver, 80);
    Serial.print("checkConnect: ");
    Serial.println(checkConnect);
     
    //Partie dans Loop() ou dans une interruption, ou dans Setup() si une seule fois au démarrage
    //Envoi de la température
     
                if (checkConnect==1) // ou if (client.connected())
                {
                  Serial.println("connected");
                  client.println("GET /arduino/controller.php?air_temp=25 HTTP/1.1");
                  client.println("Host: www.monserver.com/");
                  client.println("Connection: close");
                  client.println();
                }
                else
                {
                  // if you didn't get a connection to the server:
                  Serial.println("Connection failed to Server");
                }
    T'es sur qu'il n'y a pas d’interférence avec l'autre partie qui reçoit les données du Javascript?
    Tu n'utilises pas 2x le même objet client pour les deux services?

    Delias

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    J'ai oublié dans mon message précédent.
    Le code -5 c'est bien qu'il y a une erreur à l'ouverture du port, mais probablement la syntaxe est correcte. Et par après le branchement du if se fait mal car le if est mal écrit comme je l'ai dit dans ma première réponse.
    Le code 0, c'est probablement que la syntaxe est fausse.

    Mais comme ces codes (0 et -5) ne sont pas documentés (du moins sur arduino.cc et arduino.org) difficile de savoir ce qu'ils veulent dire exactement.

    Bonne soirée

    Delias

  9. #9
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Bon, reprenons depuis le début, j'explique:
    J'ai un programme qui tourne en javascript/ajax qui envoie chaque seconde au shield la chaine du type http://192.168.1.178?xxxx pour piloter des relais.
    Le shield reçoit bien les données ?xxxx et mes relais sont bien activés en fonction.
    Après avoir géré les relais, l'arduino doit acquérir une température, ce qu'il fait bien et doit l'envoyer à myserver.com. Et c'est là que ça coince... Qu'est ce qui ne va pas ?

    Voici mon sketch en totalité pour comprendre et peut être voir où ça cloche:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
     
    #include <SPI.h>
    #include <Ethernet2.h>
    #include <Servo.h>
    #include <OneWire.h>
    #include <DallasTemperature.h> //Librairie du capteur
     
    char myserver[] = "www.myserver.com";
     
    char c;
    int secure_time = 0;
    int secure_time_max = 15; //attente hors connexion de 10s ouverture de tous les relais
     
    // RELAY PIN (10, 11, 12, 13 affected to ETHERNET SHIELD)
    int light_relay = 2;
    int spray_relay = 3;
    int air_temp_relay = 4;
    int water_temp_relay = 5;
    OneWire oneWire(6); //Sonde de température en pin 6
     
    String readString;
    String main_status = "0"; 
    String light_status = "0";
    String spray_status = "0";
    String temp_status = "0";
     
    float air_temp_min = 23;
    float DS18B20_temperature;
    float air_temp_max = 25;
     
    DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
    DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie
     
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    byte ip[] = { 192, 168, 1, 178 };                     
    byte gateway[] = { 192, 168, 1, 1 };          
    byte subnet[] = { 255, 255, 255, 0 };
    EthernetServer server(80);
    EthernetClient client;
     
     
    void setup() {
     
      //Activation de la sonde de température
      sensors.begin(); 
      sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
      sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
     
      // INITIALISATION DES RELAIS
      pinMode(light_relay, OUTPUT);
      pinMode(spray_relay, OUTPUT);
      pinMode(air_temp_relay, OUTPUT);
      pinMode(water_temp_relay, OUTPUT);
     
      digitalWrite(light_relay, HIGH);
      digitalWrite(spray_relay, HIGH);
      digitalWrite(air_temp_relay, HIGH);
      digitalWrite(water_temp_relay, HIGH);
     
     
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for Leonardo only
      }
     
      // Start the Ethernet connection and the server:
      Ethernet.begin(mac, ip, gateway, subnet);
      server.begin();
      Serial.print("Arduino ip: ");
      Serial.println(Ethernet.localIP());
      Serial.println("Try to connect...");
      delay(1000);
    }
     
    //Fonction raccourcies pour les relais
     
    void SPRAY_ON() {
      digitalWrite(spray_relay, LOW);
    }
     
    void SPRAY_OFF() {
      digitalWrite(spray_relay, HIGH);
    }
     
    void LIGHT_ON() {
      digitalWrite(light_relay, LOW);
    }
     
    void LIGHT_OFF() {
      digitalWrite(light_relay, HIGH);
    }
     
    void WARM_ON() {
      digitalWrite(air_temp_relay, LOW);
    }
     
    void WARM_OFF() {
      digitalWrite(air_temp_relay, HIGH);
    }
     
    // Début du programme
    void loop()
    {
      // Réception des données sur le réseau ethernet
      EthernetClient client = server.available();
     
      if (client.available())
      {
        for(int i=0; i <= 20; i++)
        {
          char c = client.read();   
          if (readString.length() < 20)
          {
            readString += c;
          }
        }
        client.stop();
     
        //Parse de readString pour récupérer les bits après 192.168.1.178?
        main_status = readString[6];
        light_status = readString[7];
        spray_status = readString[8];
        temp_status = readString[9];
     
     
        // Gestion des relais
        if(main_status == "0")
        {
          light_status = "0";
          spray_status = "0"; 
          temp_status = "0"; 
          LIGHT_OFF(); SPRAY_OFF(); WARM_OFF();
        }
     
        if(main_status == "1")
        {
                if (light_status == "0") {
                  LIGHT_OFF();
                }
                if (light_status == "1") {
                  LIGHT_ON();
                }
                if (spray_status == "0") {
                  SPRAY_OFF();
                }
                if (spray_status == "1") {
                  SPRAY_ON();
                }
     
                // Acquisition de la température
     
                sensors.requestTemperatures();
                DS18B20_temperature = sensors.getTempCByIndex(0);
     
                if(temp_status == "1")
                {
                  if ( DS18B20_temperature < air_temp_min)
                  {
                    WARM_ON();
                  }
     
                  if (DS18B20_temperature > air_temp_max)
                  {
                    WARM_OFF();
                  }
                }
     
                if(temp_status == "0")
                {
                  WARM_OFF();
                }
     
     
                //Envoi de la température à myserver
                int checkConnect = client.connect(myserver, 80);
                Serial.print("checkConnect: ");
                Serial.println(checkConnect); //permet de connaitre l'état de client.connect(myserver, 80);
     
                if (client.connect(myserver, 80))
                {
                  Serial.print("Connected to ");
                  Serial.println(myserver);
                  client.print("GET /arduino/ajax_controller.php");
                  client.print("air_temp=");
                  client.print(DS18B20_temperature);
                  client.println(" HTTP/1.1");
                  client.print("Host: ");
                  client.println(myserver);
                  client.println("Connection: close");
                  client.println();
                  client.println();
                }
                else
                {
                  Serial.println("Connection failed to Server");
                }
     
          }
          secure_time = 0; //réinitialisation de secure_time
      }
      else //Pas de connection ethernet, début du compte de secure_time avant ouverture de tous les relais.
      {
        if(secure_time > secure_time_max)
        {
          SPRAY_OFF();
          LIGHT_OFF();
          WARM_OFF();
     
          Serial.println("WARNING !!! Server connexion failed. Check all wires and internet access !");    
        }
        delay(1000);
        secure_time++;
       }
     
    readString = ""; // on réinitilaise readString
    } 
    //fin de loop()

  10. #10
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Est-ce que cette requête exécutée depuis un PC (avec n'importe quel langage ou outil) fonctionne ? Depuis le serveur, peux-tu regarder les paquets reçus (avec Wireshark par exemple) pour voir si le paquet reçu est correct ?

    Je n'ai jamais fait de PHP mais j'ai quelques notions en REST/HTTP et je suis étonné de voir un GET pour envoyer une valeur. Je me serai attendu à un POST mais c'est peut-être tout à fait normal.

    Enfin, je ne pourrais que te conseiller d'utiliser une bibliothèque dédiée pour construire tes requêtes HTTP, comme celle-ci https://www.arduino.cc/en/Tutorial/HttpClient. Ca evite de se planter avec un print() au lieu d'un println() comme par exemple https://www.developpez.net/forums/d1...r/#post8500013

  11. #11
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Bonjour,

    Oui, lorsque j'execute par exemple cette requête depuis un navigateur: http://www.myserver.com/arduino/ajax...hp?air_temp=25, mon script PHP coté serveur réagit bien et prends en compte la valeur de air_temp.

    Je vais lire la doc https://www.arduino.cc/en/Tutorial/HttpClient et voir comment je l’implémente dans mon sketch.

    D'ici là, si quelqu'un voit une autre solution où mieux encore voit le bug dans mon script, je suis preneur.

  12. #12
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    client.print("GET /arduino/ajax_controller.php");
    client.print("air_temp=");
    client.print(DS18B20_temperature);
    Ca ne donne pas
    /arduino/ajax_controller.php?air_temp=25
    Il manque le '?'.

    Après, quand je parlais d'exécuter cette requête, je parlais de la requête entière exécuter "manuellement" (avec netcat ou Python ou C). Quand tu passes par un navigateur, tu ne luis donnes que l'URL de la ressource et tu ne vois pas le contenu entier de la requête. Souvent, c'est trompeur, car il rajoute des choses que n'avais pas pensé à mettre. Je me suis par exemple déjà fait avoir car je ne mettais pas d'agent. Firefox en mettait un et ça passait très bien. J'ai rajouté dans ma requête ma carte était un Firefox et j'ai réglé le problème ^^

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonjour

    Prends ton code au plus simple et puis complexifie le par étape.
    Fait une copie de ton projet puis dans la copie:
    - Supprime toute la partie serveur. (Lignes à conserver à minia pour le client web: 34 à 37, 39, 68, 175 à 197)
    - Mets juste un delay(30000); dans le loop() pour faire une bonne attente entre deux envois.
    - Remplace myserver par son adresse IP.
    - N'oublie pas client.stop(); en ligne 192-193, mais normalement cela ne devrait pas bloquer le premier envoi. (Donc c'est pas la 1ère cause)

    C'est soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                int checkConnect = client.connect(myserver, 80);
                Serial.print("checkConnect: ");
                Serial.println(checkConnect); //permet de connaitre l'état de client.connect(myserver, 80);
     
                if (checkConnect==1)
    pour le débugage
    soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                if (client.connect(myserver, 80)==1)
    en code final.
    Mais pas un mélange des deux. client.connect(...) ne doit être appelé que une fois.

    Dans les rares exemples de code avec un mélange client serveur que j'ai trouvé, c'est à chaque fois un port différent. Peut-être que c'est cela qui pose problème.
    Dans les rares exemples de code avec un nom de serveur distant en www.monserveur.com (et pas adresse IP) que j'ai trouvé, il n'y a pas de / à la fin.

    Bonne chance
    PS: Je te donne des pistes, je ne peux pas tester ces codes moi-même.

    Delias

  14. #14
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Hello,

    Merci pour vos recherches. En fait, j'ai trouvé !!!
    J'ai repris l'exemple WebClient du soft Arduino et je me suis rendu compte que la ligne server.begin() n'existait pas ! Alors je l'ai supprimé de mon sketch en ligne 69.
    Merci pour le ? dans ma requête que j'avais omis.
    Mon Shield reçoit bien les données et renvoie bien la valeur de la température à mon serveur. Je confirme également qu'il n'y a pas besoin de slash après le .com de www.myserver.com

    Par contre j'aimerais connaître les raisons et comment fonctionne ce server.begin() ?

    Je passe cette discussion en résolue.

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

Discussions similaires

  1. [Web Service] Upload fichier csv vers serveur PHP SOAP
    Par Jarod51 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 06/02/2016, 16h27
  2. Upload image vers serveur PHP
    Par 2001hal dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 11/01/2016, 03h19
  3. [MySQL] php+transfert de données serveur vers serveur
    Par Samolo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/11/2009, 09h12
  4. Envoi d'un fichier .zip vers un serveur php
    Par Arnard dans le forum C++
    Réponses: 4
    Dernier message: 25/04/2008, 10h57
  5. Java vers serveur Php/Mysql, quelle solution ?
    Par Mordoum dans le forum Général Java
    Réponses: 7
    Dernier message: 22/01/2008, 11h04

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