Adresszeile im Browser per HTML steuern


hk007

Grünschnabel
Hi,
ich hoffe ihr könnt mit dem Threadtitel was anfangen, aber ich weiss nicht wie es besser zu beschreiben ist.
Zum Thema:
Ich hab einen kleinen µC-Steuerung auf der ein Webserver mit einer Page läuft. Auf der Seite habe ich einige Buttons, mit denen ich per method=get Befehle an den µC weitergebe:
HTML:
    <form action="/buttonsHeater" method=get>
        <button type=submit name=command value='HeizungAus'>Heizung AUS</button>  
    </form>
Wenn ich jetzt auf meinem PC (Firefox) o.g. Button drücke dann erscheint in der Adresszeile folgendes: "http://192.168.1.10/buttonsHeater?command=HeizungAus"
Mein µC parst dies, erkennt den Befehl, arbeitet ihn ab und sendet dann die Seite erneut.
Allerdings steht dann im Browser immer noch der abgesetzte get-Befehl in der Adresszeile. Und bei einem Reload (Also im browser den runden Pfeil drücken) setzt er den Befehl nochmal ab.
Gibt es da eine Möglichkeit, dies im HTML-Code zu steuern, dass dann da nur noch "192.168.1.10" steht? Also die Startseite ohne den get-Befehl.
Ich hab schon im Head folgendes drin:
HTML:
    <meta http-equiv="refresh" content="60; URL=/">
Aber dann dauert es die 60 Sekunden, bis die Adresszeile angepasst wird.

Puhh ... ich hoffe das war verständlich... und wäre für jeden Tip dankbar.
Und wenn es nur ein Schlagwort ist, dass mir beim Suchen weiterhilft.

Danke und Gruß / hk007
 

merzi86

Erfahrenes Mitglied
Ich hoffe, das ich dich richtig verstanden habe.
Du hast schon eine Lösung, aber die die 60 Sekunden, bis die Adressleiste angepasst wird ist dir zu lang?

Wenn ja, dann setz doch die Zeit runter.
Z.B.:
HTML:
<meta http-equiv="refresh" content="10; URL=/">
 

hk007

Grünschnabel
Ja, daran hab ich auch schon gedacht.
Aber der automatische refresh war eigentlich nicht dafür gedacht. Damit wollte ich nur die Seite alle 60 Sekunden neu laden, um darauf wieder die aktuellen Messwerte zu haben.
Sicher könnte ich den runtersetzen, aber dann lädt er die Seite ständig in dem kleineren Zeitraster. Das ist aber nicht notwendig/gewünscht.
Ich dachte/hoffte es gäbe noch eine andere Möglichkeit.
 

Jan-Frederik Stieler

Monsterator
Moderator
Hi,
Ich hab hier ne Software mitentwickelt welche alle zwei Sekunden ein pagereload ausführt.
Who cares? Solange es keine Probleme gibt und dein Problem damit gelöst wird würd ich das einsetzen.

Gruß
 

merzi86

Erfahrenes Mitglied
Hi,
Ich hab hier ne Software mitentwickelt welche alle zwei Sekunden ein pagereload ausführt.
Who cares? Solange es keine Probleme gibt und dein Problem damit gelöst wird würd ich das einsetzen.

Gruß
Dem würde ich bedingt zustimmen.
Es kommt dabei darauf an, wie viele Zugriffe es auf der Seite gibt.
Wenn es nur 1 oder 2 sind geht es auch so.
 

hk007

Grünschnabel
Bedenkt, es ist nur ein kleiner µC. Den kann ich nicht nur mit seiner Webserver-Tätigkeit auslasten.
Aus dem Grund sehe ich ein hochfrequentes Reload nicht unbedingt als die Lösung an.
 

merzi86

Erfahrenes Mitglied
Dann wirst du mit reinen HTML nicht weiterkommen.
Du wirst dann doch JavaScript bemühen müssen.
 

Sp1r1t

Mitglied
Hallo,

ich weiß nicht ob das alles noch benötigt wird, aber warum baust du nicht einfach eine PHP abfrage ob etwas mit GET übergeben wird.
Da die Seite ja eh neu geladen wird um die GET Variable reinzuschreiben, kannst du doch einfach per if abfragen ob GET nicht leer ist und dann gegebenenfalls die Seite neu laden.

PHP:
// Speichert den Inhalt von "command" in "var"
@$var = $_GET['command'];
// Überprüft ob "var" leer ist
if ($var != '') {
    // Wenn "var" leer ist, wartet er 10 sekunden
    sleep(10);
    // Leitet weiter auf 192.168.1.10
    header('Location: http://192.168.1.10/');
}

bei evtl. Problemen stehe ich gern zur Verfügung.

Mit freundlichen Grüßen

Sp1r1t