Gast: Problem mit durch Perl erzeugter HTML-Seite

Hallo,
ich weiß nicht, ob das Thema hierhergehört oder zu Perl?
Ich generiere eine Seite mit Perl. Diese wird meistens korrekt dargestellt,
manchmal aber ist nur der Anfang vorhanden. Leider ist dies nicht reproduzierbar. Bisher ist es auch nur im Internet Explorer aufgetreten und dort auch nur in der Version 6 (dies kann Zufall sein, da der Effekt wie geschrieben nicht auf Kommando auftritt).
Ich kann daher von Euch keine konkrete Hilfe erwarten. Aber vielleicht hat doch jemand eine Idee, da es ihm auch schon passiert ist?
Schönen Abend

  1. Ich kann daher von Euch keine konkrete Hilfe erwarten. Aber vielleicht hat doch jemand eine Idee, da es ihm auch schon passiert ist?

    Das was du schilderst klingt so als ob das Perlskript wegen einem Fehler abgebrochen wurde. Mehr informationen kann dir die errorlog Datei geben.

    Struppi.

    1. Hallo

      Das was du schilderst klingt so als ob das Perlskript wegen einem Fehler abgebrochen wurde. Mehr informationen kann dir die errorlog Datei geben.

      Das hatte ich schon geprüft, das Skript endet ganz normal und durchläuft auch die entsprechenden Routinen.
      Was mir jetzt aber aufgefallen ist, dass der Bruch in der Seite mitten in einer Zeile erfolgt, d.h. von den Buchstaben ist nur die obere Hälfte zu sehen!
      Ich habe den generierten HTML-Text kopiert, in eine HTML-Datei geschrieben, diese aufgerufen und siehe da, die Seite ist komplett.
      Unglaublich aber wahr!

      1. Hoi.

        Prüfe mal, ob Du nen Content-Length Header generierst. Falls ja, prüfe ob er der Wahrheit entspricht, bzw. wirf ihn testweise mal raus.

        Grüße

        1. Hallo,
          nein ich gebe keinen entsprechenden Header aus.
          Grüße

          1. Hoi.

            nein ich gebe keinen entsprechenden Header aus.

            Hast Du das Clientseitig(z.B. per LiveHttpHeaders) verifiziert?

            Grüße

            1. Hallo,

              nein ich gebe keinen entsprechenden Header aus.
              Hast Du das Clientseitig(z.B. per LiveHttpHeaders) verifiziert?

              Kannte ich bisher nicht, habe jetzt gesucht, finde aber nur etwas für den Firefox.
              Wie kann ich dies beim Internet Explorer verifizieren?

              1. Kannte ich bisher nicht, habe jetzt gesucht, finde aber nur etwas für den Firefox.
                Wie kann ich dies beim Internet Explorer verifizieren?

                Die Header kommen von dem Server, d.h. beide bekommen den gleichen Header, du kannst auch einen Onlinedienst verwenden.

                Aber ich bezweifle, dass es damit zu tun hat.

                Struppi.

                1. Hallo,

                  Aber ich bezweifle, dass es damit zu tun hat.

                  Ergebnis der Online-Abfrage:

                  HTTP/1.1 302 Found
                  Die angeforderten Daten wurden vorübergehend zu einem anderen URI verschoben. In der Statusmeldung wird angegeben, unter welcher Adresse sich die Daten derzeit befinden. Ein Web-Browser, der diese Antwort erhält, kann gleich die temporär gültige Adresse anfordern.

                  ......

                  Content-Length: 228
                  Gibt an, wieviele Bytes insgesamt für diese Datei übertragen werden. Dies beinhaltet nur den eigentlichen Inhalt der Datei, nicht die Steuerbefehle, die ausserdem gesendet werden.
                  <<<<<<<

                  Obige Länge ist wohl die Länge des Aufrufs der URL mit dem Perl-Programm,
                  denn das von Perl erzeugte Ergebnis ist wesentlich länger.

                  1. Hallo,
                    wenn es an der Längenangabe läge, müsste der Effekt doch auch unter anderen Browsern auftreten - oder nicht?
                    Er tritt aber nur beim IE6 auf.

                  2. Ergebnis der Online-Abfrage:

                    HTTP/1.1 302 Found

                    Das ist der falsche Header, du rufst eine Weiterleitung auf.

                    Content-Length: 228

                    Das ist die Länge der Weiterleitung.

                    Struppi.

                    1. Hallo

                      Das ist der falsche Header, du rufst eine Weiterleitung auf.

                      Content-Length: 228

                      Das ist die Länge der Weiterleitung.

                      Ja, aber in dem Onlinedienst kann ich ja nur die URL angeben, die dann das Perl-Programm aufruft, in dem der Fehler auftritt.
                      Ich hatte gerade, als es wieder auftrat, den Eindruck, dass das Bild vollständig da war und dann von unten her wieder zum Teil gelöscht wurde.
                      Kann man den Seitenaufbau irgendwie beeinflussen (verlangsamen), damit ich dies verifizieren kann?

                      1. Ja, aber in dem Onlinedienst kann ich ja nur die URL angeben, die dann das Perl-Programm aufruft, in dem der Fehler auftritt.

                        Wieso? Du kannst auch ein das Perlskript aufrufen.

                        Ich hatte gerade, als es wieder auftrat, den Eindruck, dass das Bild vollständig da war und dann von unten her wieder zum Teil gelöscht wurde.

                        Es hilft wirklich nicht, immer wieder das gleiche zu sagen, wir können mit dieser Aussage nichts anfangen, solange wir nicht Wissen was du machst.

                        Kann man den Seitenaufbau irgendwie beeinflussen (verlangsamen), damit ich dies verifizieren kann?

                        Es steht dir frei, in deinem Skript Debugausgaben einzubauen.

                        Struppi.

                        1. Ich hatte gerade, als es wieder auftrat, den Eindruck, dass das Bild vollständig da war und dann von unten her wieder zum Teil gelöscht wurde.

                          Es hilft wirklich nicht, immer wieder das gleiche zu sagen, wir können mit dieser Aussage nichts anfangen, solange wir nicht Wissen was du machst.

                          Das hatte ich noch nicht gesagt. Ich dachte, das könnte eventuell weiterhelfen, zu wissen, dass dies Seite möglicherweise komplett aufgebaut wurde und dann wieder teilweise abgebaut.

                          1. Es hilft wirklich nicht, immer wieder das gleiche zu sagen, wir können mit dieser Aussage nichts anfangen, solange wir nicht Wissen was du machst.

                            Das hatte ich noch nicht gesagt. Ich dachte, das könnte eventuell weiterhelfen, zu wissen, dass dies Seite möglicherweise komplett aufgebaut wurde und dann wieder teilweise abgebaut.

                            Das ist eine Beschreibung der Symptome, aber die Ursachen können vielfältig sein. Wenn du sagst es gibt im errorlog keine Fehlermeldung und das HTML und CSS ist valide, dann gibt es eigentlich keinen Grund für das Verhalten.

                            Struppi.

                            1. Hallo,
                              ich hänge immer noch an dem Problem, aber ich habe eine neue Spur, mit der die Experten vielleicht etwas anfangen können.

                              Wenn beim Aufruf der Seite diese (im x-ten Versuch) unvollständig aufgebaut wird und ich dann unter "Extras/Internetoptionen/Dateien löschen" die Dateien lösche und dann
                              das Fenster Internetoptionen schließe, wird dies Seite komplett aufgebaut.

                              Schönen Abend

                              1. ich hänge immer noch an dem Problem, aber ich habe eine neue Spur, mit der die Experten vielleicht etwas anfangen können.

                                Das ist keine heiße Spur, das sind persönliche Beobachtungen die du gemacht hast, die aber keinen Bezug zu irgendwas haben.

                                Du schreibst du benutzt Perl, wo ist dein Perl Code?
                                Ich hatte dich schon am Anfang nach dem Errorlog gefragt, das hattest du etwas unklar beantwortet und auch jetzt bist du wieder über diese Frage hinweg gegangen, was aber für mich nach wie vor die wichtigste Frage wäre. In der Errorlog Datei findest du keine Hinweise? Hast du überhaupt Zugriff darauf? (Wenn dem nicht so wäre, könnte man dir wenigstens Tipps geben, wie du dir selber eine solche Datei anlegen könntest)

                                Wenn beim Aufruf der Seite diese (im x-ten Versuch) unvollständig aufgebaut wird...

                                Bei dieser Seite finde ich ganz andere Hinweise, der HTML Code ist unvollständig, da ich den Code auf dem Server nicht kenne, weiß ich nicht ab welcher Stelle abgebrochen wird oder ob dieser fehlerhafte HTML Code von dir stammt. (und der Validator berücksigt noch nicht einmal, das dein HTML Code einfach mittendrin abbricht).

                                Es gilt weiterhin das von mir bereits gesagte. Wenn du nicht Willens bist uns mehr Informationen und Details zu geben, können wir dir nicht helfen.

                                Struppi.

                                1. Du schreibst du benutzt Perl, wo ist dein Perl Code?

                                  Wir waren doch schon ein Stück weiter. Wie ich geschrieben hatte, habe ich den von Perl erzeugten Code in eine HTML-Datei gespeichert.
                                  Aufgerufen wird in dem von mir verlinkten Beispiel also kein Perl-Programm mehr, sondern nur die HTML-Datei.

                                  Ich hatte dich schon am Anfang nach dem Errorlog gefragt, das hattest du etwas unklar beantwortet und auch jetzt bist du wieder über diese Frage

                                  Ich habe keinen Zugriff auf die Errorlog-Datei, allerdings wird dort wahrscheinlich nichts stehen, wenn kein Perl-Programm beteiligt ist?

                                  ... (und der Validator berücksigt noch nicht einmal, das dein HTML Code einfach mittendrin abbricht).

                                  Der HTML-Code ist vollständig. Ich habe ihn verglichen mit dem in Firefox
                                  erzeugten Code. Und es ist der gleich Code im IE6 egal ob die Seite vollständig oder unvollständig aufgebaut wurde.

                                  Es gilt weiterhin das von mir bereits gesagte. Wenn du nicht Willens bist uns mehr Informationen und Details zu geben, können wir dir nicht helfen.

                                  Ich weiß wirklich nicht, was ich noch liefern könnte, da das Perl-Thema ja gegessen ist und es sich um ein reines HTML-Problem (vielleicht auch Javascript) unter dem Browser ie6 handelt.
                                  Hast Du den Effekt einmal erzeugen können?
                                  Grüße

                                  1. Du schreibst du benutzt Perl, wo ist dein Perl Code?
                                    Wir waren doch schon ein Stück weiter. Wie ich geschrieben hatte, habe ich den von Perl erzeugten Code in eine HTML-Datei gespeichert.

                                    und der ist unvollständig. Das heißt, dein Perl skript bricht irgendwo ab und sendet nicht den vollständigen Code.

                                    Aufgerufen wird in dem von mir verlinkten Beispiel also kein Perl-Programm mehr, sondern nur die HTML-Datei.

                                    nein, eine shtml Datei. Daher hatte ich vermutet du hast dort ein Perlskript eingebunden.

                                    Ich hatte dich schon am Anfang nach dem Errorlog gefragt, das hattest du etwas unklar beantwortet und auch jetzt bist du wieder über diese Frage
                                    Ich habe keinen Zugriff auf die Errorlog-Datei, allerdings wird dort wahrscheinlich nichts stehen, wenn kein Perl-Programm beteiligt ist?

                                    Nein, aber dein HTML Code kommt doch ursprünglich aus einem Perlskript, oder?

                                    ... (und der Validator berücksigt noch nicht einmal, das dein HTML Code einfach mittendrin abbricht).
                                    Der HTML-Code ist vollständig.

                                    Ich meine mit vollständig, das er nicht gültig ist. Wo sind die  schliessenden body und html Tags?

                                    Es gilt weiterhin das von mir bereits gesagte. Wenn du nicht Willens bist uns mehr Informationen und Details zu geben, können wir dir nicht helfen.

                                    Ich weiß wirklich nicht, was ich noch liefern könnte, da das Perl-Thema ja gegessen ist und es sich um ein reines HTML-Problem (vielleicht auch Javascript) unter dem Browser ie6 handelt.

                                    Wenn dem so ist, dann musst du vielleicht nur den HTML Code vollsändig machen.

                                    Struppi.

                                    1. Ich meine mit vollständig, das er nicht gültig ist. Wo sind die  schliessenden body und html Tags?

                                      Sorry, das habe ich beim "Cut and paste" verschlampt.
                                      Mit den beiden Tags habe ich aber den gleichen Effekt.
                                      Nachdem ich aber die Spur mit dem Löschen der temporären Dateien hatte, habe ich jetzt einmal in den Extras des IE6 in den Einstellungen unter
                                      "Neuere Version der gespeicherten Seiten suchen" die Option "bei jedem Zugriff auf die Seite" aktiviert.
                                      Seither habe ich den Fehler nicht mehr hinbekommen. Also muss es wohl etwas mit den in den "Temporary Internet files" gespeicherten Dateien zu tun haben.
                                      Aber auf diese Einstellungen habe ja keinen Einfluss beim Anwender.
                                      Ich glaube, ich vergesse einfach den IE Version 6, das Problem wird sich ja irgendwann von selbst erledigen!

                                      Schönen Gruß

                                      1. Ich meine mit vollständig, das er nicht gültig ist. Wo sind die  schliessenden body und html Tags?

                                        Sorry, das habe ich beim "Cut and paste" verschlampt.

                                        Es ist enorm schwierig bei einem Problem zu helfen, wo man nur fehlerhaften Code gezeigt bekommt (wenn überhaupt).

                                        Mit den beiden Tags habe ich aber den gleichen Effekt.
                                        Nachdem ich aber die Spur mit dem Löschen der temporären Dateien hatte, habe ich jetzt einmal in den Extras des IE6 in den Einstellungen unter
                                        "Neuere Version der gespeicherten Seiten suchen" die Option "bei jedem Zugriff auf die Seite" aktiviert.

                                        Was immer du da tust - wir können es einfach nicht nachvollziehen, wir können deinen Code nicht prüfen (ausser dem fehlerhaften, den du uns bisher gezeigt hast, der aber nicht mal aus der eigentlichen Anwendung kommt), d.h. wir können dir ganz einfach bei dieser Frage nicht helfen.

                                        Seither habe ich den Fehler nicht mehr hinbekommen. Also muss es wohl etwas mit den in den "Temporary Internet files" gespeicherten Dateien zu tun haben.

                                        Da du im Prinzip alles getan hast, um den eigentlich Fehler zu verschleiern, kann es sein, dass du bei deinem Versuch mit fehlerhaften Code das Problem zu ergründen, noch mehr Fehler gemacht hast.

                                        Ja, es kann unter diesen vielen Fehlerquellen auch die dabei sein, dass der IE eine fehlerhafte Seite gecached hat und deshalb durch das löschen des Caches dieser Fehler nicht mehr auftritt.

                                        Aber auf diese Einstellungen habe ja keinen Einfluss beim Anwender.
                                        Ich glaube, ich vergesse einfach den IE Version 6, das Problem wird sich ja irgendwann von selbst erledigen!

                                        Wenn das Problem so ist, wie du es urspünglich beschrieben hast, vermute ich den Fehler nach wie vor im Perlskript. Das ein eventueller kaputter HTML Code, von jedem Browser unterschiedlich interpretiert wird, sollte dich nicht davon abhalten zu versuchen dem eigentlichen Problem auf den Grund zu gehen. Zumal es ein einfaches wäre, wenn du die Mühe machen würdest mal in das Errorlog zu schauen.

                                        Struppi.

                                        1. Wenn das Problem so ist, wie du es urspünglich beschrieben hast, vermute ich den Fehler nach wie vor im Perlskript. Das ein eventueller kaputter HTML Code, von jedem Browser unterschiedlich interpretiert wird, sollte dich nicht davon abhalten zu versuchen dem eigentlichen Problem auf den Grund zu gehen. Zumal es ein einfaches wäre, wenn du die Mühe machen würdest mal in das Errorlog zu schauen.

                                          Ich bilde mir ein, einigermaßen logisch denken zu können.
                                          Da mache ich mir die Mühe, das Problem einzugrenzen, und dann solch völlig blödsinnige Aussagen (aber das ist man ja von Struppi gewohnt - wie ich immer wieder lese).
                                          Und Du wirfst den Fragenden vor, nicht auf Fragen einzugehen - aber Du? Ich habe bereits geschrieben, dass ich auf das Log keine Zugriff habe.
                                          Der Fehler tritt in dem HTML-Programm auf. Da ist es nun doch völlig egal, wie das HTML-Programm zustandekam (per Perl, PHP, HTML-Generator, Editor und und und)! Fakt ist, diese HTML-Datei erzeugt den Fehler. Und wenn man den Fehler im HTML-Programm findet, weiß man auch, was das Perl-Programm falsch generiert hat, nicht wahr?
                                          Ich lasse, wie schon geschrieben, den IE6 zukünftig außer Betracht.
                                          Danke trotzdem für deine Hilfsversuche.

                                          1. Ich bilde mir ein, einigermaßen logisch denken zu können.
                                            Da mache ich mir die Mühe, das Problem einzugrenzen, und dann solch völlig blödsinnige Aussagen (aber das ist man ja von Struppi gewohnt - wie ich immer wieder lese).

                                            Was soll das denn jetzt?
                                            Ich versuch dir seit drei Tagen bei deinem Problem zu helfen und jetzt versuchst du mich zu beleidigen?

                                            Und Du wirfst den Fragenden vor, nicht auf Fragen einzugehen - aber Du? Ich habe bereits geschrieben, dass ich auf das Log keine Zugriff habe.

                                            Hatte ich nicht gelesen, aber ich hab dir auch geschrieben, dass es dafür eine Lösung gäbe.

                                            Der Fehler tritt in dem HTML-Programm auf. Da ist es nun doch völlig egal, wie das HTML-Programm zustandekam (per Perl, PHP, HTML-Generator, Editor und und und)!

                                            Das ist völlig unlogisch, der Fehler tritt auf weil evtl. der HTML code falsch ist der von einem Skript erzeugt wurde.

                                            Fakt ist, diese HTML-Datei erzeugt den Fehler. Und wenn man den Fehler im HTML-Programm findet, weiß man auch, was das Perl-Programm falsch generiert hat, nicht wahr?

                                            Unsinn - du schreibst ja, dass der Fehler manchmal auftritt, das ist zumindest für mich ein Zeichen, dass das Perlskript evtl. manchmal abbricht, das kann viele Ursachen haben und das habe ich auch schon alles erlebt. So eion Fehlerverhalten ist extrem schwer zu finden und nur die genaue Analyse des Skriptes liefert die Lösung. Dazu gehört das Errorlog, wenn dieser nicht zu Verfügung steht, kann man sich einen eigenen Fehlerhandler bauen, der dann die Fehler in eine Datei schreibt. aber da du dir ja mittlerweile so sicher bist und ich deiner Meinung nach sowieso blödsinnige Aussagen schreibe, möchte ich dich nicht weiter belästigen und klink mich einfach aus.

                                            Struppi.

                                            1. Das ist völlig unlogisch, der Fehler tritt auf weil evtl. der HTML code falsch ist der von einem Skript erzeugt wurde.

                                              Unlogisch ist das, was Du schreibst. Ich stimme mit dir überein, dass der HTML Code vermutlich falsch ist, aber der HTML-Code, der in dem Beispiel verwendet wird ruft kein Perl auf, also ist Perl völlig außen vor.

                                              Fakt ist, diese HTML-Datei erzeugt den Fehler. Und wenn man den Fehler im HTML-Programm findet, weiß man auch, was das Perl-Programm falsch generiert hat, nicht wahr?

                                              Unsinn - du schreibst ja, dass der Fehler manchmal auftritt, das ist zumindest für mich ein Zeichen, dass das Perlskript evtl. manchmal abbricht, das kann viele Ursachen haben und das habe ich auch schon alles erlebt.

                                              Auch hier noch einmal: Wenn Du das HTML-"Programm", das ich ins Internet gestellt habe, aufrufst gibt es kein Perl. Die HTML-Datei error4.shtml ist  entstanden aus der Ausgabe des Perl-Programms (Anzeige am Bildschirm) mit Cut and paste (aus Ansicht/Quelltext) und ich hätte es genauso gut abschreiben können. Und dieser HTML-Text ruft auch kein Perlprogramm auf.

                      2. Hoi.

                        Bitte poste mal den fraglichen Link.

                        Grüße

                        1. Hallo

                          Bitte poste mal den fraglichen Link.

                          Das Original-Dokument ist viel zu groß und enthält auch vertrauliche Daten.
                          Ich habe daher jetzt versucht das vom Perlprogramm erzeugte Dokument zu verkleinern und zu neutralisieren, ohne dass der Effekt verloren geht.
                          Jetzt habe ich diese Fragment ins Internet gestellt und der Effekt trat bisher nicht auf(!?)
                          Auf meinem lokalen Rechner aber sehr wohl.
                          Im Programmfragment steht durch die vielen Löschungen sicher viel unnützes Zeug, und es ist immer noch recht groß und unübersichtlich.
                          Aber vielleicht könnt Ihr trotzdem auf Anhieb eine Stelle erkennen, die im IE6 nicht funktioniert.
                          Hier der Link.

                          1. Aaaah....

                            Dem Header Tool einer wildfremden Seite sagst den Link, aber uns nicht? *Kopfschüttel*.

                            Sorry, aber ohne Link auf die tatsächliche Problemsituation investiere ich hier jetzt keine Zeit mehr.

                            Grüße

                            1. Hallo,
                              sind wir nun beleidigt?
                              Ich habe angenommen, dass hinter dem Hader Tool nicht gleich ein Mensch steht, der den Inhalt anschaut!
                              Ich habe aber jetzt die kastrierte Seite über das Tool laufen lassen und ein Ergebnis war:

                              Transfer-Encoding: chunked
                              Dieses Feld gibt an, ob (und gegebenenfalls wie) der Inhalt der angefordertern Datei transformiert worden ist, um eine Übertragung zwischen Server und Client zu gewährleisten.
                              Die Angabe chunked bedeutet, dass die angeforderte Resource in einzelne Teile unterteilt wurde, die, während der Server noch an den restlichen Teilen arbeitet, schon einmal zum Client gesendet werden. Diese Methode wird häufig bei dynamischen erzeugten Resourcen verwendet.

                              Könnte es daran liegen?
                              Gruß