Go Down

Topic: arduino+GPRS SIM900 envois des données vers un serveur php+mysql (Read 1 time) previous topic - next topic

Taoufiq

Bonjour,

j'ai un problème avec l'envois des données vers une page php avec le module GPRS shield SIM900 j'ai testé plusieur commande AT
===============================================================
.....

AT+CIPSTART="TCP","IP serveur","8020"
OK
Connect OK

AT+CIPSEND
> GET /arduino/add.php?Distante=11 HTTP/1.1  (Ctrl+Enter, Enter depuis le terminal)
Host: http://IP serveur (Ctrl+Enter, Enter depuis le terminal / Ctrl+Enter, Enter depuis le terminal) => Ctrl+Z pour envoyer la requête

Send OK
Connexion Close

puis il affiche la reponse avec une erreur 400!!!

??
===============================================================
add.php

<?php
include("conec.php");
$link=Conection();
if (isset($_GET['Distante']))  {   
   $Distante = $_GET['Distante'];
   echo $Distante;
   $Sql = mysql_query("insert into Distance (Distante) VALUES ($Distante)",$link);
   mysql_close();
}
?>
====================================================================

Merci pour votre aide  :)

infobarquee

bonjour,

type de server et OS?
cette erreur est une mauvaise requete de la part du client ou requete mal comprise par le server.
regarde tes logs de connexion sur le server.
mais ta requete SQL me parait zarbi.
est ce qu'elle fonctionne avec un pc cette requete?

teste ca pour voir
Quote

<?PHP

$db = mysql_connect('localhost', 'user', 'password');
mysql_select_db('name_bdd',$db);

$sql = "insert into Distance (Distante) VALUES ('$Distante')";
mysql_query($sql) ;

mysql_close();

?>

skywodd

Bonjour,

Quote
Host: http://IP serveur

Dans le champ "host" il faut le nom de domaine + sous domaine (si tu accèdes à un virtual hosts) du serveur pas un lien HTTP !
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Taoufiq

Bonjour Mrs. merci pour vos remarques

Pour vous répondre [font=Verdana]"infobarquee"[/font] la requête marche bien quand je tape le lien directement sur un browser : http://IP Srveur/arduino/add?Distante=123 beh la valeur s'ajoute dans la base de données!!!, mais je vais quand même tester votre script PHP   :D

Pour la remarque de [font=Verdana]"skywodd "[/font] c'est vrai que j'utilise l'IP dans le HOST pas male comme remarque merci je vais tester tout ça et je vous tiens au courant  :D

Merci pour tout

skywodd

Au passage pour les curieux voici un exemple de requête et de réponse HTTP :
Code: [Select]
GET /forum/index.php?topic=148811.0 HTTP/1.1
Host: arduino.cc
User-Agent: Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14
Accept: text/html
Accept-Language: fr
Accept-Charset: utf-8

Code: [Select]
HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.3
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Vary: Accept-Encoding
Last-Modified: Fri, 15 Feb 2013 18:22:54 GMT
Content-Type: text/html; charset=UTF-8
Date: Fri, 15 Feb 2013 18:22:54 GMT
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Cache: MISS
Content-Length: 41862

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="arduino+GPRS SIM900 envois des données vers un serveur php+mysql" />
(...)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Taoufiq

#5
Feb 15, 2013, 10:35 pm Last Edit: Feb 15, 2013, 11:23 pm by Taoufiq Reason: 1
Bonsoir,

merci skywodd pour ton exemple ça marche très bien j'ai eu la même chose que toi  :D

mais dés que j'ai testé avec mon serveur ça ne marche pas même avec une simple page index.php

vu que j'utilise un port "8020" est-ce que je dois l'écrire dans le HOST ou pas??

un autre problème c que j'attaque d'abord mon mon réseau en passant par le firewall puis je dois atteindre mon serveur PHP qui est en local

sur le firewall le port 8020 est ouvert et qui donne accées au serveur PHP en port 80 !!!

Merci pour votre aide

skywodd


vu que j'utilise un port "8020" est-ce que je dois l'écrire dans le HOST ou pas??

Oui tu dois le mettre dans le host.
Exemple :
Quote
Host: example.org:8080



un autre problème c que j'attaque d'abord mon mon réseau en passant par le firewall puis je dois atteindre mon serveur PHP qui est en local
sur le firewall le port 8020 est ouvert et qui donne accées au serveur PHP en port 80 !!!

Donc d'un point de vue "host" tu restes sur le port 80, mais tu te connectes physiquement sur le port 8020 de ton firewall.
Ton firewall est bien configuré ?
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Taoufiq

Bonsoir skywodd merci pour tes remarques  :)

oui le Firewall est bien configuré vu que je me connecte sur mon serveur PHP depuis mon adresse IP du domaine en utilisant le port 8020

j'attaque le port 8020 qui me donne accées à mon serveur php en port 80 (serveur apache en xampp => port 80)

Je viens de configuré le fichier de config d'apache pour que je puisse avoir accès de puis n'importe quel pc et network vu qu'il était configuré juste en localhost!!!

Je vous tient au courant si j'ai des nouvelles

Merci bcq pour les remarques iltéressantes :)


Taoufiq

Bonsoir à tous,

Voilà ça marche mtn yopiii  :D beh juste aprés que j'ai ajouté le host comme il faut (merci  skywodd) il fallait ajouter ça en plus aprés le HOST => Accept : */* et là j'ai eu le fameux HTTP/1.1 200 ok lol

AT+CIPSEND
> GET /arduino/add.php?Distante=1 HTTP/1.1
HOST: mon.serveur.com:8020
Accept: */*

Send OK

Voilà merci à tous et surtout  skywodd
à la prochaine peut être

ciao  :D

ogarbanzo

Hello, c'est  possible que il manque quelque "/" on le parole Accept. j'ai le probleme aussi.

Merci.

Go Up