bitte um Beispiel Webserver-Code, um an diesen gesendete Daten zu bearbeiten

  • Hi zusammen,


    für meine ESP8266-Experimente bräuchte ich Beispielcode für einen Webserver:


    Einen Server (Mongoose) habe ich laufen, einige HTML-Beispiele (bissl rumgespiele mit rudimentärem Code und Buttons) habe ich dort zum laufen bekommen.
    Dazu habe ich den HTML-Code einfach in die index.html geschrieben, gespeichert, F5 im Browser gedrückt und die "Website" wurde angezeigt...


    Jetzt möchte ich mit dem Server kommunizieren, und zwar so einfach wie möglich (JS sollte funktionieren)
    D.h. ich sende per AutoIt "irgendwie" (per POST oder per INETREAD() oder sonstwie) Daten in Form von TEST=12345 an den Server.
    Dort sollen diese Daten beim nächsten refresh der "Website" dargestellt bzw. ausgewertet/weiterverarbeitet werden.


    Für dieses Beispiel bräuchte ich den HTML- bzw. JS /PHP-Code.

  • Hi,
    wie ich mit AutoIt Dateien erstelle war nicht die Frage!


    AutoIt
    FileWrite($sRootDir & "\index.html", "<br />" & $sName & " made comment: " & $sComment) ;Ofcourse, in real situations you have to prevent people to use HTML/PHP/Javascript etc. in their comments.
    ;; The last line adds whatever Name:Comment said in the root file .. this creates some sort of chatty effect
    _SendFile($sRootDir & "\index.html", "text/html", $aSocket[$x]) ; Sends back the new file we just created

    Die Frage war, wie ich diese Dateien per "Websprache" (lauffähig auf einem ESP8266) erstelle, abhängig von gePOST/GETeten Daten!

  • Nun. POST kann man nur mittels formularen (oder nachgebauten http requests) an den Server senden.
    Sind es nur wenige daten würde ich dir GET empfehlen. Maximale möglichkeiten: http://stackoverflow.com/quest…ength-of-http-get-request
    (Bei GET wird die Website aufgerufen, dann nen ?variable="blub"&variable1="1234"&variable2="5678" gesendet. Mit $_GET("variable1") bekommst du den inhalt (evtl. mit isset($_GET("")) prüfen, ob die Variable vorhanden ist.)
    Ansonsten POST nachbauen, oder eine Seite mit nem Formular erstellen, dort die Daten eintragen und submitten.


    POST senden mit HTTP (Quelle:(

    Post auslesen mit $_POST["name"]:


    PHP
    if(isset($_POST["language"]))
    	$_SESSION["language"]=$_POST["language"];



    Datei Lesen/Schreiben in PHP:


    Müsste das wichtigste sein, kannst ja schreiben, wenn noch was fehlt :)


    Hab grad meine Webside von PHP auf JS umgestellt, weil PHP sehr Serverlastig ist und das laden bei Kostenlosen Hostern (BPlaced) dann nicht unbedingt schnell ist.
    Mal sehen, inwiefern JS besser ist ;D

  • Andy, schau Dir doch noch mal das ESP8266 Basic an, das ich kürzlich schon verlinkt hatte:
    http://www.esp8266basic.com/


    Installiere spaßeshalber mal den Interpreter (eine Datei flashen und fertig) und dann werfe einen Blick ins dortige Forum.


    Da sind etliche (unglaublich schlanke!) Beispielcodes, die auf dem ESP laufen und per Webinterface mit dem PC/Smartphone kommunizieren.
    Löse Dich einfach mal von der Idee, dass dazu tiefes Gewühle in HTML / PHP / JavaScript notwendig wäre, nebst dem eigenhändigen Aufsetzen eines Webservers. Nein, das geht auch richtig minimalistisch, mit 20 Zeilen Quellcode und so.
    Der auf den ESP geflashte Interpreter IST ja bereits ein Webserver! So ganz von sich aus.



    Natürlich würde es mich wiederum interessieren, ob Du meine Stabilitätsprobleme nachvollziehen kannst und ob die womöglich unter Arduino nicht auftreten.
    Aber Du solltest Dir wirklich mal das Prinzip anschauen, wie man mit diesem Basic-Interpreter arbeitet und alles per Webinterface erledigt. Das ist derart kompakt und derart einsteigerfreundlich simpel, dass man es kaum glauben kann!
    Sozusagen die Quadratwurzel aus AutoIt! :)



    Wenn es spääääter mal um richtig schnelle Datenauswertung gehen sollte, dann kommen übrigens Websockets ins Spiel.
    Damit geht dann sowas, wie ein Remote-Oszilloskop: https://www.youtube.com/watch?v=8ISbmQTbjDI
    Aber das ist schon sehr abgefahren.