2017-02-08 16 views
1

私はArduino Uno Wifiを使用しています.UnoのセンサーデータをPHPデータベースに送信して、データをMySQLデータベースに保存します。 GETリクエストの場合、私はUnoWiFiDevEd.hライブラリのCiao.write()関数を使用しています。なぜなら、別の方法(シールドを使用せずに)を考え出していないからです。Arduino Uno&Ciaoを使用してGETリクエストを作成する

これは私のArduinoのコードがどのように見えるかです:

#include <UnoWiFiDevEd.h> 

void setup() { 
    char* connector = "rest"; 
    char* server = "myserver/src/add_data.php?"; 
    char* method = "GET"; 
    String resource = "humidity=11&&temperature=22"; 

    Serial.begin(9600); 
    Ciao.begin(); 

    doRequest(connector, server, resource, method); 
} 

void loop() { 

} 

void doRequest(char* conn, char* server, String command, char* method) { 
    CiaoData data = Ciao.write(conn, server, command, method); 
    if(!data.isEmpty()){ 
    Serial.println("Success"); 
    } else { 
    Serial.println("FAILED"); 
    } 
} 

そして、私はブラウザを使用して「MYSERVERを/書き込みだ場合は、これは私のPHPスクリプト(get_data.php)

<?php 
    // Connect to MySQL 
    include("dbconnect.php"); 

    // Prepare the SQL statement 
    $SQL = "INSERT INTO arduino_data (Humidity, Temperature) VALUES ('".$_GET["humidity"]."', '".$_GET["temperature"]."')"; 

    // Execute SQL statement 
    mysql_query($SQL); 
?> 

ですsrc/add_data.php?humidity = 60 & &温度= 22 "のURLバーには、すべて正常に機能します。

CiaoData PassThroughRead関数のコードを見ても、私はこのCiao.writeがどのように機能するのか誤解していると思います。 documentationはまったく役に立たない。

私はこれを何とかして完全に機能しているこのtutorialを使用しました。

+1

問題は解決しませんが、両方のGETパラメータを通してSQLインジェクションが '$ SQL'変数にあります。 –

+0

あなたはセキュリティ上の欠陥を意味しますか?今すぐArduino Uno WifiからMySQLデータベースにセンサデータを直接書き込むためのより良い方法を見つけ出すまでの回避策です –

答えて

-2

「POST not GET」メソッドを使用する必要があります。私は正確な問題を抱えていた。

関連する問題