Forum: Mikrocontroller und Digitale Elektronik HTML code not working on Ipad


von Benjamin (bedingo)


Angehängte Dateien:

Lesenswert?

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
von Thomas W. (Gast)


Lesenswert?

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.

von Benjamin (bedingo)


Lesenswert?

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&#x2103</p>
<p>Temperatur unten: 10&#x2103</p>
<p>Pumpe: an
<br>100&#x25</p>

von Hmmm (hmmm)


Lesenswert?

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.

von Benjamin (bedingo)


Lesenswert?

Danke. Ich versuche es mal mit dem vorgeschlagenen Design.

LG Benjamin

von Thomas W. (Gast)


Lesenswert?

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&#x2103</p>
12
 <p>Temperatur unten: 10&#x2103</p>
13
 <p>Pumpe: an
14
 <br>100&#x25</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.

von Benjamin (bedingo)


Lesenswert?

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
von Hmmm (hmmm)


Lesenswert?

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.

von Thomas W. (Gast)


Lesenswert?

Moin, -

w3-Validator meckert noch ein paar Semikoli nach dem Grad-Zeichen an:
1
 <p>Temperatur oben: 70&#x2103;</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?

von Kolja L. (kolja82)


Lesenswert?

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
von Daniel A. (daniel-a)


Lesenswert?

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
}

von Benjamin (bedingo)


Lesenswert?

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&#x2103</p>"
"<p>Temperatur unten: 10&#x2103</p>"
"<p>Pumpe: an"
"<br>100&#x25</p>"
also mit dem http-header aber ohne das komplizierte Web-design.

Nochmals Danke an alle

Benjamin

von Hmmm (hmmm)


Lesenswert?

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.

von Benedikt M. (bmuessig)


Lesenswert?

@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.

von Daniel A. (daniel-a)


Lesenswert?

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!)

von Ein T. (ein_typ)


Lesenswert?

Thomas W. schrieb:
>
1
>  <p>Temperatur oben: 70&#x2103</p>
2
>

Da fehlt immer noch jeweils ein Semikolon vor den "</p>".

: Bearbeitet durch User
von Purzel H. (hacky)


Lesenswert?

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
Noch kein Account? Hier anmelden.