Ankündigung

Einklappen
Keine Ankündigung bisher.

Skript bricht ohne Fehler ab

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Skript bricht ohne Fehler ab

    Hallo zusammen,

    ich habe ein Problem beim laden eines Skriptes. Dieses zieht aus der Datenbank diverse Informationen und fügt sie in ein selbstgebautes Grid ein. Dieses Grid besteht aus unterschiedlichen Formularelementen (3x Input, 2x Select, 1x Checkbox).
    Nach einer Zeit X bricht das Laden einfach (ohne Fehlermeldung) ab.
    Der Einsatz von set_time_limit(300); bringt keine Verbesserung.
    Es scheint als würde nach dieser Zeit einfach kein HTML Code mehr von PHP gesendet werden. Durch die SELECTs mit den ganzen OPTIONs ist in der Tat der übertragene Code relativ hoch, leider aber notwendig.

    Habt ihr eine Idee, woran dieser Abbruch liegen kann? Genauer ist es kein Abbruch sondern ein Lauf ins Leere.

    VG Thomas

  • #2
    Code würde bestimmt weiter helfen, sonst kann man hier nur raten woran das liegen könnte

    Kommentar


    • #3
      Ganz am Anfang vom Script (aber nach Namespace-Deklaration, falls vorhanden):
      error_reporting(-1);
      Dann kommt hoffentlich eine Fehlermeldung.

      Kommentar


      • #4
        Durch die SELECTs mit den ganzen OPTIONs ist in der Tat der übertragene Code relativ hoch, leider aber notwendig.
        Das bezweifle ich. Mit AJAX lässt sich einiges machen und der Usability hilft ein gigantisches Formularfeldermeer ja auch nichts. Von wievielen Feldern sprechen wir denn?

        Kommentar


        • #5
          Vielleicht gibt es auch irgendwo eine Endlosschleife?

          Kommentar


          • #6
            Wieviel options werden denn da geladen? Wenn du das Adressbuch von Berlin zur Auswahl anbietest, dann dürfte das laden ein paar Sekündchen dauern.

            4 Mio DS mal ~ 60 Bytes ~= 240 MB ~= 2400 Mbit => Ladezeit bei Mbit Bandbreite ~ 8 min

            Kommentar


            • #7
              @curlyworld: Der Code ist ewig lang und unübersichtlich. Es geht wirklich nur um die Darstellung von Formularen untereinander, bei denen jedes OPTION noch mal separat aus der DB geladen wird. Also quasi eine Abfrage innerhalb der Abfrage.

              @coola: Das Error-Reporting war aktiv, wie gesagt es gibt keine Meldung, die Lieferung des HTML-Codes bricht einfach ab. Eine Endlosschleife gibt es auch nicht. Bei Iterationen mit weniger Inhalt klappt alles problemlos. Der letzte Codeschnipsel der im Quelltext steht lautet: </option><option value="13094"

              @bitsnack: Es handelt sich um etwa 1000 Formularelemente. In diesem Grid ist das nicht sooo wild, da quasi nur 200 Zeilen existieren, die aufgebaut sind wie eine Tabelle nur editierbar.

              Kommentar


              • #8
                @Wolla: Jedes SELECT hat etwa 40 Options. SELECTS gibt es 2 pro Zeile = 400 Stück.

                Kommentar


                • #9
                  Hast du keys auf den Suchfeldern der Mysql-Tabellen? 1600 Options fliegen doch schneller rein als du gucken kannst.

                  Kommentar


                  • #10
                    ja, daran kann es auch eigentlich nicht liegen.
                    Ich habe auch schon die max. Lesezeit der DB erhöht, hat aber auch nichts gebracht.
                    Mich wundert es, dass einfach der Prozess endet ohne Meldung bzw. Fertigstellung.

                    Kommentar


                    • #11
                      PHP-Code:
                      set_time_limit(0); 
                      versucht?

                      Kommentar


                      • #12
                        In solchen Fällen hilft meist nur das gute alte Holzhammer-Debugging. Die Laufzeiten der Queries kannst du ja messen und ausgeben. Ggf. nimmst du das Rendering des Grids mal raus und schaust ob alles andere geht. Dann Stück für Stück wieder dazu bauen, bis es sich wieder verabschiedet. Würde zumindest den Grund einkreisen.

                        Kommentar


                        • #13
                          Errorlog des Werbservers checken

                          Manchmal raucht ein Thread im Server ab, u.U. lassen sich dann Hinweise auf die Ursache im Log des Webservers finden. Ein beliebter Fehler dafür ist z.B. eine Endlosrekursion - die erzeugt einen Stackoverflow, was den ausführenden Thread abschiesst. Der übergeordnete Thread, der Apache, bekommt das aber mit und kann entsprechend einen Eintrag ins Log schreiben.

                          Kommentar


                          • #14
                            Ich komme gerade nicht auf den Server.
                            Aber der Punkt abgeschlossener Thread bzw. Stackoverflow klingt gut. Kann ich dieses Verhalten von PHP beeinflussen bzw. so konfigurieren, dass es nicht zu einem Stackoverflow kommt?

                            Kommentar


                            • #15
                              Zitat von Plague Beitrag anzeigen
                              Kann ich dieses Verhalten von PHP beeinflussen bzw. so konfigurieren, dass es nicht zu einem Stackoverflow kommt?
                              Ordentlich programmieren eben...

                              Wenn du eine Endlosrekursion programmiert hast, kannst du die nicht einfach "wegkonfigurieren"

                              Kommentar

                              Lädt...
                              X