Status des PHP-Scriptes

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

  • Status des PHP-Scriptes

    Hi,
    ich habe ein ziemlich aufwendiges PHP-Script. Am Ende des Scriptes wird die HTML-Datei ausgegeben. Da es ca. 5 bis 6 Sekunden dauert, bis die HTML-Datei ausgegeben wird, drücken viele auf Reload, obwohl die Seite am Aufbauen ist.
    Um das zu vermeiden würde ich gerne so eine "Bitte warten..." Seite einbauen, und wenn das Script fertig ist, lädt es automatisch "Alles ok..."
    Wie funktioniert das??

    Ich hatte schon folgendes probiert:

    PHP-Code:
    include("bitte_warten.html");
    // ... code ausführen
    header("Location: alles_ok.html"); 
    Das geht natürlich nicht, nur damit es klar wird, was ich brauche

    Vielen Dank!

    Viele Grüsse
    Strauberry

  • #2
    wenn du schon ausgaben machst, funktioniert übrigens dein header() nicht mehr.

    davon abgesehen...... was dauert denn in deinem script so lange? vielleicht solltest du es mal optimieren.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hi,

      "Das geht natürlich nicht" : danke, ich weiß, dass es nicht geht

      Ich kann es nicht weiter optimieren, da... ist auch egal, es geht nicht

      Ich möchte nur so eine Verlaufsanzeige oder ein Bitte warten oder so einblenden.... irgendeine Idee??

      Kommentar


      • #4
        schaue mal im manual nach flush()

        und dann (weil header() nicht mehr geht) musst du wahrscheinlich einen meta.refresh machen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hi,

          danke schon mal für den Hinweis... ich weiß nur noch nicht genau, wie ich das jetzt einbaue

          Ich gebe jetzt per print() die "Bitte warten..." - Seite aus und führe dann den Code aus... und dann?? Habe ich flush() gemacht, aber das oben bleibt stehen... und unter meta.refresh habe ich nichts gefunden.

          Soll ich nur
          PHP]
          print <html>
          print <head>
          print "Bitte warten"

          code ausführen

          flush()
          print "<meta refresh>"
          [/PHP]

          Oder wie

          Danke dir!!!

          Kommentar


          • #6
            kannst die html temporär machen und dann weiterleiten (auch header).

            oder du nimmst wirklich flush (evtl. mit js).

            weiß nicht, ob das toturial mit der statusbar weiter hilft.

            Kommentar


            • #7
              so....

              PHP-Code:
              print <html>
              print <
              head>
              print 
              "Bitte warten"
              flush();

              code ausführen

              print "<meta refresh ....>"// das geht weiter 

              meta refresh
              findet mal bei selfhtml. -> http://selfhtml.teamone.de
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                sorry, ich checks immer noch nicht so ganz... nur bischen code würde schon helfen

                Kommentar


                • #9
                  Hi,

                  cool, danke

                  Was meta refresh ist, weiß ich, ich dachte nur, das wäre ne special Funktion bei php oder so

                  Wie geht denn der Netscape damit um, wenn er nur ne halbe html-Seite bekommt??

                  Kommentar


                  • #10
                    Original geschrieben von strauberry
                    Wie geht denn der Netscape damit um, wenn er nur ne halbe html-Seite bekommt??
                    www.TESTEN.de

                    sollte aber genauso funktionieren.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      wieso nur ne halbe seite?

                      nach flush() kann die seite ja eigentlich zu ende sein. es folgt ja keine ausgabe mehr.

                      Kommentar


                      • #12
                        Hi,
                        gut, das funktioniert soweit, nur eine Sache:
                        es dauert ewig, bis dieses "bitte warten..." angezeigt wird, dann steht es zwei Sekunden da und dann gehts schon weiter... so war das nicht gedacht )

                        Ich mache das grad so: (vor diesem Code kommt nur <? )

                        PHP-Code:
                        <?php

                        print("<html>\n");
                        print(
                        "<head>\n");
                        print(
                        "<title>jkj</title>\n");
                        print(
                        "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n");
                        print(
                        "</head>\n");

                        print(
                        "<body bgcolor=\"#FFFFFF\" text=\"#000000\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\n");
                        print(
                        "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"100%\">\n");
                        print(
                        "  <tr>\n");
                        print(
                        "    <td align=\"center\" valign=\"middle\"><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">Hallo</font></td>\n");
                        print(
                        "  </tr>\n");
                        print(
                        "</table>\n");
                        print(
                        "</body>\n");
                        print(
                        "</html>\n");
                        flush();

                        // Mein Code

                        print("<html>\n");
                        print(
                        "<head>\n");
                        print(
                        "<title>sdfsdfsdf</title>\n");
                        print(
                        "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.gmx.de\">\n");
                        print(
                        "</head>\n");   
                        print(
                        "<body>\n");
                        print(
                        "</body>\n");
                        print(
                        "</html>\n");
                        Wieso erscheint das obere erst so spät??

                        Danke nochmal für eure Hilfe!
                        Zuletzt geändert von strauberry; 18.05.2003, 16:14.

                        Kommentar


                        • #13
                          Vielleicht hilft dir das weiter http://www.edv-internet.de/kostenloses/ProgressClass/
                          (siehe http://www.php-resource.de/scripte/b...b/PHP/Class/2/)

                          Kommentar


                          • #14
                            Hi,
                            also das habe ich mir jetzt alles genau angeschaut und mit flush() geht es definitiv nicht...
                            PHP-Code:
                            include("html_header.php4");
                            print(
                            "Ihre Daten werden verarbeitet...");
                            for(
                            $i 0$i 100000000$i++) {
                               
                            $z $z*$i;
                            }
                            flush();
                            print(
                            "<meta http-equiv=\"refresh\" content=\"0;URL=www.gmx.de\">\n"); 
                            In html_header steht halt der normale html-Kram (<html><header>...) drin, bis zu der Stelle, an der dann der refresh kommt...

                            Das dumme an der Sache ist nur, dass das Script ewig braucht (ohne Anzeige!), dann für ne Sekunde "Daten..." anzeigt und dann gleich zu gmx weiterleitet. Was bringt das dann mit dem flush() ???

                            Bitte nochmals um Hilfe

                            DANKE!!
                            strauberry

                            Kommentar


                            • #15
                              es kann sein, dass flush() erst ab ner bestimmten anzahl zeichen sendet (etwa 512 oder so) weiß nicht genau!

                              Kommentar

                              Lädt...
                              X