I am trying to create a webpage in my local network using an Esp8266. I found this article (https://www.instructables.com/Simple-Webserver-Using-Arduino-UNOMega-and-ESP8266/) on the internet and everything worked fine. I can view the webpage from my pc but not from an Ipad. Somehow the code works for Windows machines but not Ipads. Why? Thank you in advance.
:
Verschoben durch Admin
Da die Kommentare so oder so auf deutsch waren: - Ofensichtlich funktioniert Deine SW einigermassen. Einziger Punkt (aber das koennen meine fehlenden C++-Faehigkeiten sein):
1 | String createWebPage(){ |
2 | String page = "<h1>Solar-Pumpe</h1><p>Temperatur oben: "; |
3 | ...
|
4 | return page; |
Wuerde das nicht ein Speicherleck produzieren? Aber meine C++-Faehigkeiten sind ausbaufaehig. - Zeige mal den Quellcode Deiner Webseite. Einigene Webbrowser sind etwas schwierig. Eine Standardwebseite sollte etwa so aussehen:
1 | <!DOCTYPE html> |
2 | <html lang="de"> |
3 | <head> |
4 | <meta charset="UTF-8"> |
5 | <title>Eine Test Web-seite</title> |
6 | <meta name="description" content="Inhaltverzeichnis"> |
7 | </head> |
8 | |
9 | <body> |
10 | |
11 | </body> |
12 | </html> |
Gruesse Th.
Danke für die schnelle Antwort. Ich habe es mit der Website extremst simple gehalten. Der Code ist: <h1>Solar-Pumpe</h1> <p>Temperatur oben: 70℃</p> <p>Temperatur unten: 10℃</p> <p>Pumpe: an <br>100%</p>
Benjamin schrieb: > Ich habe es mit der Website extremst > simple gehalten. Das ist nicht simpel, das ist kaputt. Du sendest nur, was im Body-Element stehen sollte, und lässt den Rest weg. Einen HTTP-Reply-Header kann ich auch nirgendwo erkennen. Ich finde es eher erstaunlich, dass es Browser gibt, die das akzeptieren.
Danke. Ich versuche es mal mit dem vorgeschlagenen Design. LG Benjamin
Ja, und am PC (welcher Browser) funktionert es ja. Am IPad nicht. Spendiere doch einfach mal:
1 | <!DOCTYPE html> |
2 | <html lang="de"> |
3 | <head> |
4 | <meta charset="UTF-8"> |
5 | <title>Eine Test Web-seite</title> |
6 | <meta name="description" content="Inhaltverzeichnis"> |
7 | </head> |
8 | |
9 | <body> |
10 | <h1>Solar-Pumpe</h1> |
11 | <p>Temperatur oben: 70℃</p> |
12 | <p>Temperatur unten: 10℃</p> |
13 | <p>Pumpe: an |
14 | <br>100%</p> |
15 | </body> |
16 | </html> |
Kostet ja nix. Denn der Code ist so simple, dass es etwas simples sein muss (z.b. Flasche IP-Adresse, Firewall). Vielleicht gibt es hier auch einen Apple-Benutzer der diese Frage loesen kann. Gruesse Th.
Ich habe es jetzt ausprobiert. Das Problem bleibt aber bestehen. Auf dem Ipad verwende ich Safari und auf dem PC funktioniert es bei Brave und Edge. Danke trotzdem.
:
Bearbeitet durch User
Benjamin schrieb: > Ich habe es jetzt ausprobiert. Das Problem bleibt aber bestehen. Auch diesen Hinweis beachtet? Hmmm schrieb: > Einen HTTP-Reply-Header kann ich auch nirgendwo erkennen. Du solltest Dich nochmal in Ruhe mit HTTP befassen.
Moin, - w3-Validator meckert noch ein paar Semikoli nach dem Grad-Zeichen an:
1 | <p>Temperatur oben: 70℃</p> |
ob das Entscheidend ist kann ich nicht sagen. Habe keine Apple-Produkte. Gruesse Th. P.S.: Zeigt das Ding nichts an? Kann man irgendwie den Seitenquellkode anzeigen lassen?
Thomas W. schrieb: > Kann man irgendwie den Seitenquellkode anzeigen lassen? Ich glaube nur über Hilfsmittel; https://ole.michelsen.dk/blog/view-source-on-the-ipad-and-iphone/
:
Bearbeitet durch User
Hmmm schrieb: > Einen HTTP-Reply-Header kann ich auch nirgendwo erkennen. Vor allem das kommt mir auch komisch vor. Versuche mal das hier:
1 | String createWebPage(){ |
2 | String page = |
3 | "HTTP/1.0 200 OK\r\n" |
4 | "Content-Type: text/html\r\n" |
5 | "\r\n" |
6 | "<h1>Hello World!</h1>"
|
7 | ;
|
8 | return page; |
9 | }
|
Jetzt funktioniert es. Tausend Dank an alle, die versucht haben, das Problem zu lösen. Die webpage die am Ende auch auf dem Ipad funktioniert hat war: "HTTP/1.0 200 OK\r\n" "Content-Type: text/html\r\n" "\r\n" "<h1>Solar-Pumpe</h1>" "<p>Temperatur oben: 70℃</p>" "<p>Temperatur unten: 10℃</p>" "<p>Pumpe: an" "<br>100%</p>" also mit dem http-header aber ohne das komplizierte Web-design. Nochmals Danke an alle Benjamin
Benjamin schrieb: > also mit dem http-header aber ohne das komplizierte Web-design. Also immer noch kaputt, so dass Du jederzeit damit rechnen musst, dass nach einem Browser-Update nichts mehr geht. Du solltest mindestens noch "<html><head><title>Seitentitel</title></head><body>" davor- und "</body></html>" dahintersetzen, das wird Deinen Speicherplatz nicht sprengen.
@Benjamin, ich würde unbedingt empfehlen das WiFi-Passwort der FRITZ!Box 6591 Cable zu ändern, nachdem es hier zusammen mit dem Code veröffentlicht wurde.
Hmmm schrieb: > Benjamin schrieb: >> also mit dem http-header aber ohne das komplizierte Web-design. > > Also immer noch kaputt, so dass Du jederzeit damit rechnen musst, dass > nach einem Browser-Update nichts mehr geht. Auch wenn man das formal da haben sollte, da muss man sich keine Sorgen machen. Wenn es nach mir ginge, würde im Web richtiges XML verwendet, da hat man simple, strikte und konsistente Regeln, an die man sich halten muss. Aber wir haben stattdessen nun mal HTML. Der wilde Westen, wo jeder macht, was er will. Es gibt da Unmengen regeln, was wo drin sein dürfte, welche Tags self closing sind oder sein können, etc. Aber letztendlich bleibt HTML ein zusammengehackter Mist. Nichteinmal die Browserhersteller oder die W3C kümmern sich mehr darum, was erlaubt wäre, und was nicht. Als Beispiel, eigene Attribute müssen nach HTML5 mit "data-" anfangen. Aber wenn man in JS WebComponents definiert, definiert man die Attributre ohne "data-" Prefix: https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks Es gibt gewisse Regeln, an die man sich halten muss. z.B. welche Tags man schliessen muss, oder auch welche Tags in welchen Tags erlaubt sind, einfach weil der Browser anhand dessen den Inhalt interpretiert. Aber das <html> Gerüst, dass kann einem egal sein. Eigentlich ist meistens so, wenn es läuft, läufts, und wird auch weiterhin laufen. (Das mit den HTTP Headern darf man hingegen nicht falsch machen. Das ist nicht teil von HTML, und wenn man sich nicht an HTTP hält, geht es nicht!)
Thomas W. schrieb: >
1 | > <p>Temperatur oben: 70℃</p> |
2 | >
|
Da fehlt immer noch jeweils ein Semikolon vor den "</p>".
:
Bearbeitet durch User
Es geht um eine lokale Datei, welche einfach im Brower geoffnet werden soll ? Ohne kommunikation ? Das muss gehen : mypage.html als textfile schreiben & umnennen, kein doc, kein rtf. <html> <head> </head> <body> <h3>wasauchimmer</h3> </body> </html>
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.