kostenloser Webspace werbefrei: lima-city


Externen Anfragen den Zugriff auf Verzeichnisse erlauben

lima-cityForumlima-city Allgemeinlima-city Allgemein

  1. Autor dieses Themas

    sensorik

    sensorik hat kostenlosen Webspace.

    Hallo zusammen,

    ich spiele zur Zeit ein bisschen mit einem Arduino Uno Wifi rum und will Sensordaten die ich damit lese in eine MySQL Datenbank auf Lima City speichern. Dafür verwende ich ein PHP Script dass mir die Parameter die ich in der URL mitgebe ausliest und anschließend in die Datenbank speichert. Wenn ich das ganze direkt im Browser mache, also bspw. schreibe "meineWebseite.lima-city.de/src/add_data.php?humidity=22&temperature=60" dann funktioniert das auch tadellos. Allerdings, sobald ich das ganze von meinem Arduino ausführen möchte, führt es zu einem Fehler.
    Ich habe um das Problem einzugrenzen ein einfaches Arduino Script modifiziert, welches mir den Wert aus einer .txt Datei ausliest und zurückgibt (in der .txt Datei steht nur eine Zahl). Ich habe nun ebenfalls eine .txt Datei in meinen src-Ordner auf meinen Webspace geladen und versucht sie mit dem selben Script auszuführen (und lediglich die Adresse des Servers vertauscht) und bekomme aber keinen Wert zurück.

    Das heißt, meine Vermutung ist nun, dass der Zugriff auf das src Verzeichnis (oder allgemein auf meinen Webspace) von außen verboten wird und deswegen keine GET requests zurück kommen. Kann das sein? Und wenn ja, wie kann ich das umgehen?

    Vielen Danks schon einmal im Voraus!

    ----
    Mein PHP Script get_data.php
    <?php
        // Connect to MySQL
        include("dbconnect.php");
    
        // Prepare the SQL statement
        //$SQL = "INSERT INTO test.temperature (sensor ,celsius) VALUES ('".$_GET["serial"]."', '".$_GET["temperature"]."')";    
        $SQL = "INSERT INTO arduino_test (Humidity, Temperature) VALUES ('".$_GET["humidity"]."', '".$_GET["temperature"]."')"; 
    
        // Execute SQL statement
        mysql_query($SQL);
    ?>


    (ja, die Anfälligkeit für SQL Injections ist mir bewusst, es geht momentan nur um das probieren!)

    Und wen es interessiert, hier der Arduino Sketch
    #include <UnoWiFiDevEd.h>

    void setup() {
    char* connector = "rest";
    char* server = "meineWebseite.lima-city.de/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(data.get(1));
    } else {
    Serial.println("FAILED");
    }
    }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Was für eine Fehlermeldung bekommst du denn?
    Ich kenne deine genutzte Library leider nicht.
    Für mich klingt das in Kombination mit den Variablennamen aber eher auch so dass "server" nur dem Hostname (also "meineWebseite.lima-city.de" entspricht und "resource" entsprechend dann den kompletten Pfad.
    So liest sich das zumindest auch hier: http://platformio.org/lib/show/1440/Uno%20WiFi%20Dev.%20Edition%20Library
    Prinzipiell muss beim Client hier bei Lima Voraussetzungen wie z.B. ein User-Agent im Header gegeben sein. Wirklich Zugangsbeschränkungen gibt es da aber nicht, wenn du sie nicht selbst vorgenommen hast.
    Da musst du schauen wie du den Header übermitteln kannst.

    Beitrag zuletzt geändert: 9.2.2017 0:45:00 von muellerlukas
  4. Autor dieses Themas

    sensorik

    sensorik hat kostenlosen Webspace.

    @muellerlukas vielen Dank für deine Antwort.
    Ich hab an dem Sketch schon ziemlich viel rumprobiert und gespielt, leider macht es keinen Unterschied was ich genau in die Variable server oder in resource schreibe. Eine wirkliche Fehlermeldung erscheint auch nicht, da ich beim senden der Daten an das PHP Script ja keinen return value bekomme. Deswegen bin ich auch lange pauschal davon ausgegangen, dass der Fehler irgendwo am Arduino liegen muss, bis ich dann versucht habe, besagte Textdatei auszulesen.

    void setup() {
    
    	char* connector = "rest";
    	char* server = "download.arduino.org";
    	char* method = "GET";
    	String resource = "/latest.txt";
    
    	Serial.begin(9600);
    	Ciao.begin();
    
    	doRequest(connector, server, resource, method);
    }


    Dieser Sketch liefert mir den Wert aus der latest.txt Datei zurück (10709), modifiziere ich einfach nur den server Pfad, bekomme ich als Ergebnis 0 zurück (dabei ist es egal ob die latest.txt Datei im src oder im root Verzeichnis liegt). Wirklich erklären kann ich mir das nur dadurch, dass meine Anfragen irgendwie nicht durchgehen.

    Leider betreibe ich das ganze rein hobbymäßig und bin nicht wirklich in der Materie drin. Was genau meinst du denn mit User-Agent im Header? Wie sieht das denn konkret aus, ich kann mir da leider momentan nicht wirklich was drunter vorstellen.

    Beitrag zuletzt geändert: 9.2.2017 9:51:50 von sensorik
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!