Facebook usw.: mit welcher Methode werden Logindaten gesendet

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

  • Facebook usw.: mit welcher Methode werden Logindaten gesendet

    Hallo Forenmitglieder,

    mir ist bei Seiten wie Facebook, Studivz aber auch Gmx aufgefallen, dass man nach dem Einloggen mit der Vor-/Zurückfunktion des Browsers zwischen der Startseite und der Seite nach dem Einloggen wechseln kann, ohne dass POST-Daten erneut gesendet werden müssten.

    Nun liest man ja in jedem Entwicklerhandbuch, dass Logindaten immer mit POST gesendet werden sollten.
    Wisst ihr vielleicht, welche Methode auf diesen und anderen Seiten zum Einsatz kommt?

    Vielen Dank

  • #2
    POST auf eine PHP-Datei, die den Loginvorgang durchführt und dann mit header() auf die Startseite weiterleitet.

    Kommentar


    • #3
      Super, vielen Dank. Hatte mich bisher mit der Funktion header() noch kaum beschäftigt.

      Kommentar


      • #4
        Original geschrieben von pekka
        POST auf eine PHP-Datei, die den Loginvorgang durchführt und dann mit header() auf die Startseite weiterleitet.
        Naja... Weiterleitungen auf die eigene Domain sind meist überflüssig und Resourcenfressend ! Ein kompletter zusätzlicher und dabei auch noch unnötiger Requestzyklus.
        Ich bezeichne sie mal dreist, als "dirty Hack"!

        Es gibt Methoden, wie man das Doppelposten feststellen kann.


        Auch die fürchterlichen Browsermeldungen kann man so verhindern:
        PHP-Code:
        error_reporting(E_ALL);
        session_cache_limiter('none'); // none/nocache/private/private_no_expire/public
        session_start();
        header('Cache-Control: no-store');
        header('Pragma: no-cache'); 
        Diese treten sowieso nur auf, weil die Sessionverwaltung an den Headern dreht.
        Wir werden alle sterben

        Kommentar


        • #5
          Hmm, schön! Wieder was gelernt
          Ich würde trotzdem meinen, daß der Mechanismus zum Erkennen von Doppelposts aufwändiger ist als die kleine Header-Weiterleitung. Aber das würde wohl vom Einzelfall abhängen.

          Kommentar


          • #6
            Liegt dran...
            Ein Doppelpost check dürfte in ca einer Tausendstel Sekunde abgehandelt sein. Ein Requestzyklus kann schon mal ein Sekündchen oder so dauern.
            Je nach Laune der Geräte und Wetterlage
            Wir werden alle sterben

            Kommentar


            • #7
              Ein Requestzyklus kann schon mal ein Sekündchen oder so dauern.
              Aha - da bin ich andere Meinung. Außerdem hab ich das Gefühl das du den ersten Post überhaupt nicht gelesen hast.
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                Original geschrieben von tontechniker
                Aha - da bin ich andere Meinung. Außerdem hab ich das Gefühl das du den ersten Post überhaupt nicht gelesen hast.
                warum?

                Kommentar


                • #9
                  1. Doch doch das Posting habe ich gelesen!!
                  2.
                  PHP-Code:
                  for ($i=0;$i<10 $i++) 
                  {
                    
                  $start microtime (TRUE);
                    
                  file_get_contents('http://www.php-resource.de');
                    
                  $end microtime (TRUE);
                    echo 
                  number_format($end-$start,3).' Sekunden<br>';

                  Liefert meist in knapp über 500ms. Ab und an sind aber auch Ausreißer mit 1.6 Sekunden dabei. Nagut, ein reiner HEAD Request würde eine höhere Aussagekraft haben. (war aber zu faul den ebend zu schreiben)

                  Dazu kommt noch, daß euer Server etwas fixer reagiert, als so mancher free oder Massenhoster.
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    warum?
                    "Es gibt Methoden, wie man das Doppelposten feststellen kann." != "...dass Logindaten immer mit POST gesendet werden sollten. "

                    Das man header-Weiterleitungen vermeiden sollte ist schon richtig (gerade wenn man noch Meldungen ausgeben will entsteht immer Overhead), für kleine Projekte vom Aufwand her aber vertretbar.
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #11
                      Eure Diskussion hat mich gerade etwas verwirrt

                      Ich nehme die Weiterleitung auf meiner Seite jetzt mit header() vor. Vorher hatte ich das einfach mit <body onLoad=""> gemacht.

                      War meine alte Lösung jetzt doch besser? Und warum machen Seiten wie Facebook das dann nicht auch so?

                      Kommentar


                      • #12
                        Vor-/Zurückfunktion des Browsers zwischen der Startseite und der Seite nach dem Einloggen wechseln kann, ohne dass POST-Daten erneut gesendet werden müssten.
                        Daraus habe ich geschlossen, daß die hässlichen, beim IE fensterfüllenden, Browsermeldungen gemeint sind.
                        Und dafür habe ich meinen Codeschnipsel gepostet!
                        Ja! Der ist extra für diesen Zweck erfunden worden

                        Weil, ob die Postdaten nochmal gesendet werden, oder ob das vermieden wird, sieht der Besucher überhaupt nicht!
                        Zuletzt geändert von combie; 21.07.2007, 16:41.
                        Wir werden alle sterben

                        Kommentar


                        • #13
                          War meine alte Lösung jetzt doch besser?
                          Nein, das war die schlimmste, nicht barrierefreie und unsinnigste Lösung überhaupt.
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar

                          Lädt...
                          X