MB: unaufgeforderte Rücksetzung des Session-Wertes "Role" in der App

moin,

ich hab wieder ein flüchtigkeitsfehlerchen gemacht 😕. Beim andmelden redirected die App wie erwünsch in den Admin- oder User-Bereich jenach $_SESSION[ 'role' ]-Wert. Jedoch, wenn man danach irgendeinen _URL_−Request macht, springt er wieder in die Defaut-Rolle und man kann nicht auf den Admin- oder User-Bereich zugreifen 😟. Komischerweise existiert die anderen Werte $_SESSION[ 'user' => 'foo', 'lang' => 'en' ] wie erwartet noch 😕. Ich bin echt überfragt

lgmb

  1. Hello,

    wer ist "er"?

    • Wie sehen die URLs aus?
    • Wie sieht der PHP-Code für den Dispatcher aus?
    • Wie sehen die Umleitungsregeln aus (Rewrite, Redirect, ...)
    • Werden Cookies ausgewertet?

    Sessionwerte bleiben solange erhalten, bis sie überschrieben oder gelöscht werden. Wenn das Session-Token (Cookie) verloren geht, sind sie i.d.R. noch erhalten, aber nicht mehr zugänglich.

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. moin,

      wer ist "er"?

      das Framework

      • Wie sehen die URLs aus?
      language/role/controller/action/param[1]/.../param[n]
      
      • Wie sieht der PHP-Code für den Dispatcher aus?

      dumeinst den Router? Der Router holht sich ein array von ausen ab bestehend aus ebend diesen URL-Segmenten und dann weist er die einzelne strings als Router Property zu.

      • Wie sehen die Umleitungsregeln aus (Rewrite, Redirect, ...)
      <IFModule mod_rewrite.c>
          RewriteEngine on
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteRule ^(.*)$ index.php [PT,L]
      </IFModule>
      
      • Werden Cookies ausgewertet?

      hab keine. Ich verwende ersteinmal nur $_SESSION. Ich entwickle ja noch.

      lgmb

      1. Hello,

        • Wie sehen die URLs aus?
        language/role/controller/action/param[1]/.../param[n]
        
        • Wie sieht der PHP-Code für den Dispatcher aus?

        du meinst den Router?

        Ja, die nennen das so. Oft wird erst redirected (routed) und dann auf eine Anwendung verteilt (dispatched). Wo genau der Untersheid liegt, wäre eine eigene Diskussion wert ;-)

        • Werden Cookies ausgewertet?

        hab keine. Ich verwende ersteinmal nur $_SESSION. Ich entwickle ja noch.

        Wenn PHP-Sessions benutzt werden, wird i.d.R. auch ein Cookie benutzt für die Session-ID

         echo $_COOKIE['PHPSESSID'];  
        

        Wenn der verloren geht, sind auch die Session-Daten unerreichbar.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es!
        Das Leben selbst ist der Sinn.
        1. moin,

          • Wie sehen die URLs aus?
          language/role/controller/action/param[1]/.../param[n]
          
          • Wie sieht der PHP-Code für den Dispatcher aus?

          du meinst den Router?

          Ja, die nennen das so. Oft wird erst redirected (routed) und dann auf eine Anwendung verteilt (dispatched). Wo genau der Untersheid liegt, wäre eine eigene Diskussion wert ;-)

          hab zwei .htaccess! Der eine nich gezeigte macht genau das was zu beschrieben hast

          • Werden Cookies ausgewertet?

          hab keine. Ich verwende ersteinmal nur $_SESSION. Ich entwickle ja noch.

          Wenn PHP-Sessions benutzt werden, wird i.d.R. auch ein Cookie benutzt für die Session-ID

           echo $_COOKIE['PHPSESSID'];  
          

          Wenn der verloren geht, sind auch die Session-Daten unerreichbar.

          ok. ich werde mich zeit nahe damit befassen. Es funktioniert auch so, ich schätze apriori weil PHP das selbst in die hand nimmt

          lgmb

  2. moin,

    ich hab das problemchen lokalisiert. Ich hab ohne if-Abfrage automatisch den SESSION-Wert als Default gesetzt egal welchen wert die Superglobale Variable vorher hatte. danke für eure inspiration & hilfe.

    lgmb