Diskussion der Weiterleitungen

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

  • Diskussion der Weiterleitungen

    Hallo Leute,

    mir scheint hier der richtige Platz um mal eine Diskussion zu starten. Ich möchte in Hinsicht auf Weiterleitungen im Web meinen Horizont erweitern und mal eure Meinungen dazu erfahren.

    Die üblichen Verdächtigen
    PHP-Code:
    header('Location: http://www.example.com/'); 
    und
    PHP-Code:
    <meta http-equiv="refresh" content="2;url=http://www.yoursite.com/newpage.htm" /> 
    sind bekannt.

    Habe jetzt hier aber desöfteren gelesen, dass meta refreshs unsauber sind, was ja auch logisch ist, da diese zumeist im Body-Bereich aufgerufen werden.

    Ich konnte bisher nur meta refreshs anwenden.
    Folgender Grund:

    In meiner index.php werden alle weiteren Inhalte per require() eingelesen. Einen Location-Header zu setzen war also nicht möglich.
    Alternativ habe ich mir die Aufmachung von www.peterkropff.de angeschaut, wo jede Unterseite eigentlich ein kompletter Index ist.
    So will ich das ganze auch nicht gestalten.
    Wie handelt ihr sowas?
    Und kann man meta refreshs im Body verschmerzen?



    Gruß
    Hauke

  • #2
    Habe jetzt hier aber desöfteren gelesen, dass meta refreshs unsauber sind, was ja auch logisch ist, da diese zumeist im Body-Bereich aufgerufen werden.
    falsch, das gehört eindeutig in den head-bereich.
    Alternativ habe ich mir die Aufmachung von www.peterkropff.de angeschaut, wo jede Unterseite eigentlich ein kompletter Index ist.
    das verstehe ich jetzt nicht.
    In meiner index.php werden alle weiteren Inhalte per require() eingelesen. Einen Location-Header zu setzen war also nicht möglich.
    wozu brauchst du überhaupt die weiterleitungen? imho sollte man damit eh nur in ausnahmefällen arbeiten.

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zum Ersten: Stimm ich dir zu

      Zum Zweiten: Doof zu beschreiben, vielleicht seh ichs auch einfach falsch.
      Wenn ich mir auf deiner Seite den Index anschaue (Quellcode-technisch) und auf einen beliebigen Link in der Navi klicke bsp: "Einführung", und mir wieder den Quellcode anschaue, so sieht es für mich so aus, als wenn jede deiner Unterseiten - also nicht-Index-Seiten- die komplette Navigation enthält.
      Ich habs bisher immer so gemacht, dass ich eine Index-Seite verwende, auf der die Navi, der Footer, der Header und Gedöns einmalig aufgerufen werden. Der Inhalt wird dann quasi in den vorgesehenen Bereich ge-required.

      Zum Dritten: Gebe ich dir auch Recht, allgemein benutzte ich sowas recht selten. Aber wenn ich zum Beispiel nach dem Login so etwas anzeigen will wie "In wenigen Sekunden kommen Sie zum Mitgliederbereich", dann komm ich ohne meta-refresh nicht aus. Denn da dies alles bei mir als Inhalt required wird, kann ich keine header-location setzen.

      Oder anderes Beispiel:
      Wenn jemand falsche Benutzerdaten im Login angibt, so kommt die Meldung "Falsche Daten, Sie werden zum Login zurückgeleitet" (so aus dem Kontext)

      Ist in meinen Augen benutzerfreundlicher, als den Kerl einfach wieder zum Start zu schießen

      Gruß
      Hauke

      Kommentar


      • #4
        Zu zweitens solltest du dir mal ein paar Grundlagen aneigenen. Eine davon ist die Tatsache, dass das was du im PHP-Quelltext stehen hast, nicht zum Klient gelangt. Somit kannst du mit deinem Blick in Kopffs HTML-Quelltext gar nicht erahnen, welche Technik er anwendet. Ich würde jedoch vermuten, dass er auch irgendwas included und nicht bei jeder Änderung 1.000 Seiten anpasst.

        Zu drittens: Du solltest an deinem Programmierstil arbeiten. ERST die ganze Logik, danach die Ausgabe. Dann hast du auch kein Problem mit ner vernünftigen "Location"-Weiterleitung, wie sie in diesem Fall angebracht wäre.

        Oder anderes Beispiel: Wenn jemand falsche Benutzerdaten im Login angibt, so kommt die Meldung "Falsche Daten, Sie werden zum Login zurückgeleitet" (so aus dem Kontext)
        Da würd ich ein Affenformular verwenden.

        Kommentar


        • #5
          Original geschrieben von hauke
          Ich habs bisher immer so gemacht, dass ich eine Index-Seite verwende, auf der die Navi, der Footer, der Header und Gedöns einmalig aufgerufen werden. Der Inhalt wird dann quasi in den vorgesehenen Bereich ge-required.
          Ja und, meinst du, das macht er anders? Er schreibt bestimmt nicht die sich wiederholenden Bestandteile in jede Datei rein.
          Welche Erkenntniss du da durch Blick in den clientseitigen Quelltext glaubst gewinnen zu können, ist mir rätselhaft.


          Ob man nun in ein Grundgerüst die Inhalte includiert, oder aber in einzelnen Inhaltsseiten das "drumherum", ist lediglich 'ne Geschmacksfrage, bzw. wie man seine Seite organisieren will.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ja und, meinst du, das macht er anders? Er schreibt bestimmt nicht die sich wiederholenden Bestandteile in jede Datei rein. Welche Erkenntniss du da durch Blick in den clientseitigen Quelltext glaubst gewinnen zu können, ist mir rätselhaft.
            Bin auf Grund der *.htm-Endungen seiner aufgerufenen Seiten davon ausgegangen.

            Zum Thema "Affenformular" <- nachgeschlagen und es als sinnig befunden wieder was gelernt.

            Zum Thema "Erst Logik dann Ausgabe": Kann mir das nicht wirklich vorstellen, die Logik findet sich meist am Anfang meiner Scripte, aber eben auch in den eingebundenen. Und da über diesen wiederrum schon Code ausgeführt wird, sind Locations nicht möglich.

            Das müsste dann ja heißen, dass ich jegliche Abfragen an den Anfang der Index-Datei schieben müsste. Das kanns ja auch nicht sein oder?

            Gruß
            Hauke

            Kommentar


            • #7
              Bin auf Grund der *.htm-Endungen seiner aufgerufenen Seiten davon ausgegangen.
              Nächste Grundlage: mod_rewrite

              Zum Thema "Erst Logik dann Ausgabe": Kann mir das nicht wirklich vorstellen, die Logik findet sich meist am Anfang meiner Scripte, aber eben auch in den eingebundenen. Und da über diesen wiederrum schon Code ausgeführt wird, sind Locations nicht möglich.
              Das ist schlecht. Solltest du umstrukturieren.

              Das müsste dann ja heißen, dass ich jegliche Abfragen an den Anfang der Index-Datei schieben müsste. Das kanns ja auch nicht sein oder?
              Nee, müsste nur heißen, dass du mit der Ausgabe erst NACH der Abarbeitung deiner Includes beginnst. Auch hier gibt es wieder diverse Möglichkeiten.

              Ich würde dir einfach empfehlen ein wenig im Forum zu stöbern, eigentlich wurde jedes Thema schonmal behandelt, so dass es müssig ist, wenn wir dir noch mal alles erzählen. Und irgendwann kommt der nächste und wir erklären wieder alles... (usw.).

              Aber bei konkreten Fragen bekommst du natürlich weiterhin Antworten, sofern diese nicht durch suchen zu beantworten sind.

              Kommentar


              • #8
                Ich weiß zufällig, dass beim Peter die ganze Seite ohne PHP läuft ;-)
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  Original geschrieben von hauke
                  Zum Thema "Erst Logik dann Ausgabe": Kann mir das nicht wirklich vorstellen, die Logik findet sich meist am Anfang meiner Scripte, aber eben auch in den eingebundenen.
                  http://de.wikipedia.org/wiki/EVA-Prinzip
                  Und da über diesen wiederrum schon Code ausgeführt wird, sind Locations nicht möglich.
                  Abgesehen davon, das Umleiten als "Normalfall" eh wenig sinnvoll ist, ist auch diese Aussage falsch.
                  Das müsste dann ja heißen, dass ich jegliche Abfragen an den Anfang der Index-Datei schieben müsste. Das kanns ja auch nicht sein oder?
                  Abfragen und Berechnungen kannst du machen, wo du willst - gerne auch in include-Files ausgelagert.
                  Aber die Ausgabe kommt erst dann, wenn Eingabe und Verarbeitung durch sind, siehe Wikipedia-Link oben.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    Ich würde jedoch vermuten, dass er auch irgendwas included und nicht bei jeder Änderung 1.000 Seiten anpasst.
                    Hahaha, doch das tut er ... seine Homepage ist komplett statisch

                    Kommentar


                    • #11
                      OffTopic:
                      Ich erinnere mich daran, dass die PDFs von Hand generiert werden, bei der Online-Version hatte ich das nicht mehr auf dem Schirm...

                      Wäre mir da aber auch nicht 100%ig sicher, da sich die .htm-Dateien auch mit der Endung .php aufrufen lassen. Kein Beweis, aber ein Indiz.

                      http://peterkropff.de/site/html/html.htm
                      http://peterkropff.de/site/html/html.php
                      http://peterkropff.de/misc/print/pri.../html/html.php
                      Zuletzt geändert von TobiaZ; 05.04.2009, 18:39.

                      Kommentar


                      • #12
                        Genau das habe ich ja gemeint.
                        Aber dann muss er ja wirklich ziemlich viel pflegen, oder nur eine riesig kranke CSS-Datei.

                        Und zum EVA-Prinzip, kann auch nicht wirklich so ablaufen, denn assoziieren wir "Eingabe" mal mit Nutzereingabe eines Logins, wären da schon die ersten Aufrufe getätigt, die den Erfolg der Header-Weiterleitung verhindern würden.

                        Nagut, aber ich steh erst am Anfang meiner Blüte Werde mir wohl noch einiges zu Gemüte ziehen.

                        Kommentar


                        • #13
                          Aber dann muss er ja wirklich ziemlich viel pflegen, oder nur eine riesig kranke CSS-Datei.
                          Was möchtest du uns damit schon wieder sagen?

                          Und zum EVA-Prinzip, kann auch nicht wirklich so ablaufen, denn assoziieren wir "Eingabe" mal mit Nutzereingabe eines Logins, wären da schon die ersten Aufrufe getätigt, die den Erfolg der Header-Weiterleitung verhindern würden.
                          Falsch! "Eingabe" ist der HTTP-Request an deine Seite (also die abgesendeten Daten). Merke, jeder Seitenaufruf ist ein einzelner Programmdurchlauf.

                          Anfrage, Programm wird ausgeführt und gibt was aus und wird danach beendet.
                          Anfrage, Programm wird ausgeführt und gibt was aus und wird danach beendet.
                          Anfrage, Programm wird ausgeführt und gibt was aus und wird danach beendet.

                          Kommentar


                          • #14
                            Original geschrieben von hauke
                            Und zum EVA-Prinzip, kann auch nicht wirklich so ablaufen, denn assoziieren wir "Eingabe" mal mit Nutzereingabe eines Logins, wären da schon die ersten Aufrufe getätigt, die den Erfolg der Header-Weiterleitung verhindern würden.
                            Von was für "Aufrufen" redest du hier, und was sollen die mit dem Location-Header zu tun haben?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Mit den Aufrufen waren im Groben html-Tags oder anderer PHP-Code gemeint.
                              Aber jut, laut TobiaZ macht das mit der EVA auch Sinn. Habe bei Eingabe an Nutzereingaben im weitesten Sinne gedacht, nicht an Anfragen an den Server.

                              Kommentar

                              Lädt...
                              X