Seite 1 von 1
Löschen der Anzeige vor neuer Ausgabe
Verfasst: Donnerstag 5. Februar 2009, 21:12
von noisefloor
Hallo,
folgendes: innerhalb eines CGIs werden Daten auf Korrektheit geprüft. Wenn n.i.O. wird eine Funktion aufgerufen, die eine Fehlermeldung ausgibt (in Form einer HTML Seite).
Das funktioniert auch, aber die Ausgabe der Fehlermeldung erfolgt direkt oberhalb der bereits angezeigten HTML-Seite. D.h. man sieht die Fehlermeldung und direkt darunter noch die Eingabemaske.
Kann man aus dem CGI heraus den Browser irgendwie veranlassen, die bereits angezeigte Seite zu löschen, so dass nur die Fehlerseite angezeigt wird?
Gruß, noisefloor
Verfasst: Donnerstag 5. Februar 2009, 21:18
von Hyperion
Kann es sein, dass Du die Mechanismen von http, cgi und einem Browser nicht verstanden hast?
Du erzeugst doch durch das cgi eine komplett neue Seite! Lass das Formular halt einfach weg, dann hast Du doch das, was Du willst.
Verfasst: Donnerstag 5. Februar 2009, 21:21
von Dauerbaustelle
Hallo,
warte mal... du übermittelst Zeugs an den Browser, bevor du die Abfrage auf dem Server richtig fertigverarbeitet hast?
Das ist schlecht, weil unkomfortabel und bringt eben solche Probleme mit sich. Verarbeite die Abfrage erstmal auf dem Server fertig, dann kannst du nämlich entscheiden, ob du eine Fehlermeldung zurückgeben willst oder Content.
Falls du das nicht so willst: Du könntest ein Javascript schicken, das den "richtigen" Content versteckt/löscht. Aber das sind dreckige Hacks..
Verfasst: Donnerstag 5. Februar 2009, 21:38
von noisefloor
Hallo,
Du erzeugst doch durch das cgi eine komplett neue Seite! Lass das Formular halt einfach weg, dann hast Du doch das, was Du willst.
DAS dachte ich auch - bis eben. Die Prüfung der Daten erfolgt nach dem Klick auf "Senden", also die Eingabemaske ist dann schon "fertig".
Könnte es auch damit zusammenhängen, dass nach der Ausgabe der Fehlermeldung sys.exit() aufgerufen wird?
Gruß, noisefloor
Verfasst: Donnerstag 5. Februar 2009, 21:47
von Dauerbaustelle
Ja, das könnte es. Es ist sowieso schlecht, wegen einer Exception das CGI-Script zu beenden :)
Verfasst: Donnerstag 5. Februar 2009, 21:55
von noisefloor
Hallo,
yup, es ist wohl schlauer, die Fehlermeldung beim nächsten Selbstaufruf des CGI auszugeben als im aktuell laufenden CGI zu springen...
Werde ich mal probieren bzw. einbauen.
Gruß, noisefloor
Verfasst: Donnerstag 5. Februar 2009, 22:45
von Hyperion
noisefloor hat geschrieben:
DAS dachte ich auch - bis eben. Die Prüfung der Daten erfolgt nach dem Klick auf "Senden", also die Eingabemaske ist dann schon "fertig".
Ich bin unfähig Deinen Schilderungen zu folgen! Daher schildere ich das mal so, wie ich den Prozess mir nach Deinen Angaben vorstelle:
1.) Du hast eine HTML-Seite mit einem Formular darin.
2.) Du klickst auf "senden" (also den submit-Button)
3.) per http werden Deine Daten an den Webserver übertragen, der darufhin ein cgi-Script aufruft.
4.) Im Script verarbeitest Du die Daten und gibst dann anhand der Daten etwas aus.
Wo liegt denn nun das Problem? In Schritt 4 musst Du doch lediglich genau das HTML generieren, was Du haben willst?!?
Verfasst: Freitag 6. Februar 2009, 16:51
von noisefloor
Hallo,
nein, das CGI-Skript ruft sich selber auf, weil die Dateneingabe nicht "in einem Rutsch" erfolgen kann (das Skript ist eine Eingabemaske für Google Charts, Map-Diagramme). Das habe ich oben nicht erwähnt, ist aber für das Problem hier wohl ziemlich relevant, sorry.
Aber ich denke, dass ich die Lösung habe. Im aktuellen Skript erfolgt Prüfung und Ausgabe bzw. Neugenerierung in der falschen Reihenfolge. Schon doof, wenn man den Ablauf des eigenen Programms nicht richtig durchblickt...
Trotzdem natürlich Danke für eure Antworten.
Gruß, noisefloor
Verfasst: Samstag 7. Februar 2009, 00:41
von Hyperion
noisefloor hat geschrieben:Hallo,
nein, das CGI-Skript ruft sich selber auf, weil die Dateneingabe nicht "in einem Rutsch" erfolgen kann
Habe ich etwas anderes behauptet? Ich schrieb:
1.) Du hast eine HTML-Seite mit einem Formular darin.
Ob diese nun schon vorher durch ein CGI generiert wurde ist doch vollkommen egal!
Verfasst: Montag 9. Februar 2009, 09:54
von noisefloor
Hallo,
ok, so gesehen...
Kann man hier Threads auf gelöst setzen oder hat phpBB die Funktion nicht?
Gruß, noisefloor
Verfasst: Montag 9. Februar 2009, 10:07
von Leonidas
noisefloor hat geschrieben:Kann man hier Threads auf gelöst setzen oder hat phpBB die Funktion nicht?
Siehe Forenregeln, dort ists erklärt.
Verfasst: Dienstag 10. Februar 2009, 20:13
von noisefloor
Hallo,
ok, dann fassen wir mal zusammen: Die Lösung war die Änderung des Skriptablaufs.
Gelöst.
Gruß, noisefloor