2x Header in einem Script ?

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

  • 2x Header in einem Script ?

    Hallo,
    ich habe ein Bilduploadscript in dem ein User seine Bilder hochladen kann und es anschließend von imagemagick verkleinert wird.

    Nun ist es aber so, dass imagemagick für großes Bild sehr lange braucht um eine kleine Vorschau zu erstellen. Daher würde ich gerne dem User eine Seite zuvor anzeigen lassen, dass er einfach einen moment warten muss.

    Ich habe mir folgendes Vorgestellt:

    PHP-Code:
    header ("Location: warten.php");
    # Scriptabfolge
    header ("Location: ende.php"); 
    Ist es überhaupt möglich, in einer PHP Datei mit 2 Header Befehlen zu arbeiten ?

    Ich könnte das ganze auch auf 2 Dateien aufteilen, würde aber gerne es so machen, wie oben beschrieben.
    Zuletzt geändert von Mundgeruch; 21.03.2008, 15:07.

  • #2
    Ersetze mal das
    PHP-Code:
    #Scriptabfolge 
    durch die Codezeilen, die dafür zuständig sind.
    Ausserdem glaub ich eher, dass das eine Aufgabe für Javascript ist.

    Kommentar


    • #3
      Owei kein Javascript, ich wollte das schon gerne mit PHP lösen.

      Der Inhalt ist eigentlich unrelevant aber hier das wichtigste element.

      PHP-Code:
      system("$imagemagick -resize 343x343 -quality 75 $file_name $file_vorschau); 
      der Befehl brauch ca. 10 Sek. und für den User sieht es auf der Seite so aus, als ob nichts passieren würde.

      Kommentar


      • #4
        Ist ja nicht zu fassen ... du setzst header('Location: ...') ein und weisst noch nicht mal was nach dem Funktionaufruf passiert ... tsss

        Kommentar


        • #5
          Also 2 header gehn schonmal nicht.

          Das einzigst mögliche, so wie ich das momentan überblicke, wäre ein JS-Befehl, der ein Layer mit "Bitte warten..." o.ä. über die aufrufende Seite legt.
          Und man den Programmaufruf ganz oben im Bearbeitenden Script platziert. Wenn vorher keine Ausgabe stattfindet, dürfte beim Browser solange die alte Seite angezeigt werden.

          Muss dazu aber sagen, das ich mich mit den Umleiten des Ausgabestreams nicht auskenne, vielleicht kann dazu jemand anderes etwas sagen.

          Kommentar


          • #6
            @asp2php
            wenn du mein Posting aufmerksam gelesen hättest, wäre dir aufgefallen, dass es sich hierbei um einen Denkansatz handelt.

            Ich suche wie du sicherlich nicht gelesen hast nach einer Idee um das einfacher zu lösen als zwei Seiten aufzurufen.

            Dabei möchte ich allerdings JS vermeinden ...

            Kommentar


            • #7
              Mit meinen jetzigen Kenntnissen kann ich leider nicht sagen, wie man einen Programmaufruf asynchron laufen lässt. Wenn das mit PHP überhaupt möglich ist.

              Wenn das wirklich nicht möglich ist, kommt du um JS oder um die 2-Seiten Methode nicht drumherum.
              Ansonsten einfach mal ausprobieren, ob es mit
              Code:
              <meta http-equiv="refresh" content="0; URL=http://www.yoursite.de">
              und als Body die Warteseite funktioniert. Den Programmaufruf natürlich ganz unten dann platzieren.

              Denke mal, das erst nach dem 200 Header die meta-Angabe ausgeführt wird.

              Kommentar


              • #8
                Original geschrieben von $_Baker
                Also 2 header gehn schonmal nicht.

                Das einzigst mögliche, so wie ich das momentan überblicke, wäre ein JS-Befehl, der ein Layer mit "Bitte warten..." o.ä. über die aufrufende Seite legt.
                Und man den Programmaufruf ganz oben im Bearbeitenden Script platziert. Wenn vorher keine Ausgabe stattfindet, dürfte beim Browser solange die alte Seite angezeigt werden.

                Muss dazu aber sagen, das ich mich mit den Umleiten des Ausgabestreams nicht auskenne, vielleicht kann dazu jemand anderes etwas sagen.
                Sicherlich gehen 2 Header Befehle in einer PHP-Datei. Man muß diese halt in eine Abfrage stecken und diese nur dann ausführen lassen wenn die Bedienung erfüllt ist oder nicht.

                Ich persönlich habe z.b. eine message.php wo ich mit einer IF-Bedienung verschiedene $_GET Variablen auswerte und den entsprechenden Text ausgeben lasse. Dann brauche ich in meinem Scripten nur noch prüfen wann ein Fehler erscheinen soll.
                z.b. beim prüfen ob ein DB-Eintrag vorhanden ist.

                // Auszug aus der message.php

                PHP-Code:
                if($_GET['access'] == 2) {
                    
                $meldung '<center><b>Achtung: Du hast einen ungültigen        Verweis angegeben!</b></center><br/>
                    Wenn Du einem korrekten Link gefolgt bist, solltest Du den 
                    <a href="kontakt.html" title="Support anschreiben">&raquo; Administrator &laquo;</a> benachrichtigen.<br/>'
                ;    
                }

                if(
                $_GET['access'] == 3) {
                    
                $meldung '<center><b>Achtung: Du hast nicht die erforderlichen Rechte für diesen Forenbereich.</b></center>
                    <br/><center><a href="'
                .$_SERVER['HTTP_REFERER'].'">zurück</a></center>';    


                // Auszug aus der Script-PHP
                PHP-Code:
                $thread one_db('threads''threadid'$_GET['threadid'], '');
                if(
                $thread['prüfen'] == false) {func_header("message/access-2.html");}

                $post one_db('posts''postid'$_GET['postid'], '');
                if(
                $post['prüfen'] == false) {func_header("message/access-3.html");} 
                So prüfe ich ob in meinem Forum die übergebenen Werte per GET überhaupt in der Datenbank vorhanden sind oder der Benutzer eventuell über die URL diese versucht hat zu manipulieren. Vorteil ist halt das ich die Fehlermeldungen meiner Seite in einer Datei unterbringe und diese bei Bedarf nur dort ändern brauche. Das ganze baut aber hier auf einem Template System auf (falls noch mehr dumme Antworten von $_Baker aufkommen sollten).

                MFG DieKrabbe
                Zuletzt geändert von DieK®abbe; 21.03.2008, 16:12.

                Kommentar


                • #9
                  OffTopic:
                  Sicherlich gehen 2 Header Befehle in einer PHP-Datei. Man muß diese halt in eine Abfrage stecken und diese nur dann ausführen lassen wenn die Bedienung erfüllt ist oder nicht.
                  Vielleicht wars es auf diesen Speziellen Fall bezogen?!

                  falls noch mehr dumme Antworten von $_Baker aufkommen sollten
                  Wenn du nichts zu dem Thema beitragen kannst, dann hör doch auf, den Thread mit unformatiertem Quelltext vollzuposten!

                  Kommentar


                  • #10
                    Nicht streiten, es ist doch bald Ostern

                    <meta http-equiv="refresh" content="0; URL=http://www.yoursite.de"> geht leider nicht, ich werde es einfach so machen wie ich es zuerst geplant habe.


                    2 Dateien ... schade

                    Kommentar


                    • #11
                      Du hast aber nicht das "yoursite.de" übernommen oder?

                      Kommentar


                      • #12
                        hehe neeeeeeeeeeeee

                        Er leitet mich ja weiter, aber dann nimmt er den letzten headerbefehl leider nicht. Ich lande also direkt auf die Wartenseite und nichts passiert irgendwie.

                        Kommentar


                        • #13
                          Original geschrieben von Mundgeruch

                          Er leitet mich ja weiter, aber dann nimmt er den letzten headerbefehl leider nicht. Ich lande also direkt auf die Wartenseite und nichts passiert irgendwie.
                          Ist doch klar ... aber du willst dich immer noch nicht mit header('Location: ...'); auseinandersetzen ... kein Wunder

                          Kommentar


                          • #14
                            Achso..
                            Die aufrufende Seite sollte auf die Bearbeitende Seite weiterleiten, die gleichzeitig den "Bitte Warten..."-Teil und die meta-Angabe enthält. Der Programmaufruf erst nach dieser Ausgabe.

                            Kommentar


                            • #15
                              @asp2php
                              das es mit header ("Location: nicht funktionieren kann, dass weiß ich selber!

                              Es sollte doch nur eine Idee sein, um zu verdeutlichen was ich überhaupt möchte.

                              Naja habe es nun mit zwei Seiten gemacht, dass wusste ich auch schon vorher, dass es so klappen wird. Aber ich habe auf eine Idee gehoft um es evtl. anders zu lösen.

                              Kommentar

                              Lädt...
                              X