Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Weiterleitung??

Einklappen

Neue Werbung 2019

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

  • Problem mit Weiterleitung??

    Hallo zusammen!

    Folgende Situation: Der User sendet ein Formular ab. Die Eingaben werden auf der Seite user_data1.php verarbeitet. In der DB wird das User-Profil aktualisiert.

    Danach wird mittels

    Code:
    header("Location: http://www.club300.de/users/user_data2.php?id=" . $id . "&mod=1"); exit();
    auf die Seite user_data2.php weitergeleitet. Dort erfolgt nochmal eine statistische Auswertung und das User-Profil (dieselbe Tabelle) wird erneut aktualisiert.

    Das Problem: In ca. 95% der Fälle klappt alles wie gewünscht. In den restlichen Fällen scheint die Verarbeitung nach der ersten Seite abzubrechen.
    Ist es möglich, dass einige Browser die Weiterleitung blockieren? Kann ich daran etwas ändern, oder habe ich irgendwo einen Fehler drin?

    Auf beiden data-Seiten wird natürlich nichts ausgegeben. Im Formular werden übrigens nur Checkboxen angekreuzt, somit kann ich ausschließen, dass durch irgendwelche exotischen Eingaben Fehlermeldungen und somit die Ausgabe von Content erzeugt wird.


  • #2
    1. Header weiterleitungen müssen vom Browser unterstützt werden. Im Normalfall unterstützen dass aber die gängigen Browser.
    2. Egal was du in dienem Formular verwendest, der User kann jegliche Art an Daten übermitteln! Daher IMMER prüfen egal was für Eingabefelder du verwendest.

    Kommentar


    • #3
      Danke für die schnelle Antwort!
      zu 1) trotzdem erscheint mir die Fehlerquote sehr hoch. Ich habe auf meiner Seite z.B. einen Foto-Upload, wo auch mehrfach mit Header-Weiterleitungen gearbeitet wird. Da gabs nie Probleme.
      zu 2) schon klar. Ich wollte damit nur sagen, dass ich die Ursache "Content-Output vor Header-Weiterleitung" durch eine Mysql-Fehlermeldung ausschließen kann.

      Kommentar


      • #4
        Tja da können wir dir jetzt schlecht weiter helfen. Kenn deinen Code nicht, kann dir daher auch nicht weiter helfen. Normalerweise funktionieren header() Weiterleitungen. (Solang es nicht zu viele nacheinander sind)

        Kommentar


        • #5
          Langsam bin ich völlig ratlos...

          Dies ist der Anfang der Seite, auf die weitergeleitet wird:

          PHP-Code:
          <?php

            error_reporting
          (E_ALL);

            include(
          "../inc/connect.php");

            include(
          "../inc/login_control.php");


            
          $id $_GET['id'];

            
          $mod $_GET['mod'];

            
          mail ("...@gmx.de","test login","login: $login","From: ...@club300.de");


            if     ( 
          $login <> ) {

                     echo 
          "Error: Login invalid"; exit(); }

          Am Anfang wird über include ein Script aufgerufen, das Username + Passwort (als Cookies) überprüft, und wenn okay die Variable $login = 1; übergibt.

          Durch die Protokoll-Mail() an mich selbst habe ich herausgekriegt, dass die Weiterleitung zwar funktioniert, aber das Login nicht. Dies kann eigentlich nur bedeuten, dass die Cookies mit den Userdaten nicht mehr da sind, bzw. nicht gelesen werden.

          Frage: Hab ich da irgendwie einen Syntax-Fehler drin, dass nach einer Weiterleitung die Cookies nicht erneut abgefragt werden dürfen oder so? werden sie durch die Weiterleitung gelöscht?

          Ich poste auch gerne nochmal das Login-Script, aber eigentlich kann es daran ja nicht liegen, weil die vorige Seite in diesem Punkt absolut identisch aufgebaut ist (nur dass diese nicht über eine Weiterleitung aufgerufen wird). Falls jemand Cookies deaktiviert hätte, wäre für ihn auch bereits eine Seite eher Schluss gewesen. Es reißt bloß immer nach dieser einen Weiterleitung ab...und

          Kommentar


          • #6
            Cookies gehen bei Header-Weiterleitung verloren

            Wahrscheinlich bin ich das Problem von der falschen Seite angegangen. Deshalb hier noch einmal der Versuch, das Ganze verständlicher darzustellen:

            Der User kann sich in den Mitgliederbereich einloggen, es wird dann jeweils ein Cookie für den Usernamen und den Zugangscode gesetzt.

            Auf jeder Mitgliederseite werden zur Authentifizierung zuerst diese beiden Cookies überprüft.

            Ich kann jetzt durch diverse Tests sicher sagen, dass bei einigen Usern (etwa 5%) Cookies verlorengehen, wenn per Header-Weiterleitung von einer auf die nächste Seite gesprungen wird.

            Auch ein erneutes Setzen der Cookies nützt nichts:

            PHP-Code:
            header("Location: http://www.club300.de/users/user_data2.php?id=" $id "&mod=1");

              
            setCookie("set_user"$set_usertime()+86400*8"/");
              
            setCookie("set_login"$set_login0"/");

              exit(); 
            Interessanterweise wird der erste Cookie set_user übertragen, während der andere set_login (mit Ablaufzeit 0) nach der Weiterleitung verschwunden ist.

            Ist meine Syntax falsch? Ist dieses Problem bekannt? Was könnte ich noch versuchen?

            Vielen Dank!

            Kommentar


            • #7
              Nein.

              [MOD: Merge]
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar

              Lädt...
              X