Ajout data dans base Mysql via php&get

Bonjour,

Dans le cadre d’un projet, je cherche a faire remonter des informations (humidité, température) sur une base de donnée mysql sur un hébergement ovh, via un script php, et une requête GET.

Mon fichier add.php

<?php 
 try 
{    
		$bdd = new PDO('mysql:host=[s]login[/s].mysql.db;dbname=[s]login[/s];','[s]login[/s]','[s]pass[/s]'); 
} 

catch(Exception $e) 
{ 
        die('Erreur : '.$e->getMessage());  // En cas d'erreur, on affiche un message et on arrête tout 
} 

// test si la variable existe 

if (isset($_GET['temp']) && isset($_GET['hum']))


{
$bdd->exec('INSERT INTO templog (`temperature`, `humidity`) VALUES ('.$_GET["temp"].', '.$_GET["hum"].')');

}

?>

Le script fonctionne, si je l’exécute manuellement via cette requête :

http://domaine.fr/add.php?temp=25&&hum=98

Les deux valeurs sont bien ajouté a la base de donnée.

Maintenant, j’aimerais que les valeur provienne d’un capteur de mon arduino. La captation de temperature et d’humidité sont OK dans la console, la requete est censé etre ecrite d’apres la console, mais je n’ai rien en DB.

Mon fichier capteur.ino :

// Ces deux bibliothèques sont indispensables pour le shield
#include <SPI.h>
#include <Ethernet.h>
#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT22 

DHT dht(DHTPIN, DHTTYPE);

// L'adresse MAC du shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xA5, 0x7E };
IPAddress ip(192,168,1,53);
IPAddress server(213,0,0,4);             // /!\ /!\ /!\  (adresse fictive) Ici j'ai un doute sur l'adresse du serveur, je ne sais pas comment la recuperer via mon hebergement ovh (mais ne fonctionne pas non plus en local)...[/b]
EthernetClient client;

void setup()
{
   // démarrage la voie série
   Serial.begin(9600);
 
/*------------------------SHIELD ETHERNET------------------------*/
    if (Ethernet.begin(mac) == 0) {
    Serial.println("Erreur utilisation DHCP");
    Ethernet.begin(mac, ip);
    }
 
    Serial.println("Init...");
  // Donne une seconde au shield pour s'initialiser
    delay(1000);
    Serial.println("Pret !");
    Serial.print("@IP Arduino : ");
    Serial.println(Ethernet.localIP());
    Serial.println();
/*------------------------/SHIELD ETHERNET------------------------*/
}
void loop() {  
/*------------------LECTURE TEMPERATURE/HUMIDITY------------------*/
    dht.begin();
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
    if (isnan(h) || isnan(t)) {
  Serial.println("Failed to read from DHT sensor!");
    return;
    }

  Serial.println("Lecture temperatures...");
  Serial.print(t);
  Serial.println(" degrees");
  Serial.print(h);
  Serial.println(" %"); 
  Serial.println(); 
/*------------------/LECTURE TEMPERATURE/HUMIDITY------------------*/

/*----------------------------REQUETE----------------------------*/
  if (client.connect(server, 80)) {  
                Serial.println("Requete GET...");
                client.print( "GET /add.php?");
                client.println("Host:domaine.fr");
                client.print("temp=");
                client.print(t);
                client.print("&&");
                client.print("hum=");
                client.println(h);
                client.println( "Connection: close" );
                client.stop();
                client.println();
                Serial.println("donnees ecrites");
} 
        else
        {
          Serial.println("problème de connection");
        }
/*----------------------------/REQUETE----------------------------*/

delay(30000); // attente en millisecondes

}

J’ai essayé plusieurs formulation de requete differente, mais rien n’y fait, en console tout semble OK, mais je n’ai rien d’ajouter en base.

Si quelqu’un a des details concernant la construction des requetes.

En vous remerciant,

Thomas.

bonjour,
déjà pour ton domaine, tu fais un ping du ndd et tu as l'ip

après normal que ca foire un peu, tu mélange un peu tout

              client.print( "GET /add.php?");
                client.println("Host:domaine.fr");
                client.print("temp=");
                client.print(t);
                client.print("&&");
                client.print("hum=");
                client.println(h);

tu marques ta requête comme il faut http://domaine.fr/add.php?temp=25&&hum=98
et dans le code tu mets && au lieu de &

Merci pour ta réponse Infobarquee,

J'ai modifié la ligne "client.print("&&");".

Et j'ai récupérer l'IP via le ping (c'est bien celle que j'avais déjà), mais je me posais la question car elle ne fonctionne pas dans l'autre sens, si je tape l'adresse dans mon navigateur, cela me renvoi au webmail OVH. Je possède un hébergement mutualisé, et non un dédié, le problème peut t'il venir de là ?

utilise le ndd ovh que tu as acheté

Mon problème est ici, lorsque je remplace la ligne avec mon domaine j'ai une erreur :

La ligne modifié : IPAddress server(domaine.fr);
Erreur : 'domain' was not declared in this scope