Kris: Session - Variablen neu setzen

Guten Morgen an alle hier :)

Ich habe folgendes Problem !
Ich habe ein Script gebastelt das ähnlich wie phpMyAdmin Datenbank Einträge ändern/löschen/neu anlegen kann. Bei einem erfolgreichen Login in das System übergebe ich eine ADMIN ID - UID - ADMIN LVL - FIRMA ID per SESSION Variable ! Am Start JEDER Seite starte ich per include die Session erneut und überprüfe ob die 4 SESSION VARIABLEN noch alle gesetzt sind und nicht leer sind !
Wenn man per EDIT seinen eigenen Account ändert (oder per "Profil ändern) ... will ich direkt sichergehen ob sich einer der HAUPTVARIABLEN verändert hat (UID / ADMIN LVL / FIRMA ID). Daher setze ich diese direkt neu nach dem ich geprüft habe ob der eigene User geändert wurde !

Nun triggert aber direkt auf der nächsten Seite die Abfrage ob die SESSION VARIABLEN noch gesetzt sind und schickt mich zurück zum Login. Obwohl sie gesetzt sind (sie wurden ja nur umgeschrieben) triggert das Script ... wieso ? Wie kann ich das verhindern :

<?php

Session starten

session_start() or die( " Session konnte nicht initialisiert werden ");

Falls kein Session Username oder nur ein leerer Session Username vorhanden ist -> Login

if ((!isset($_SESSION['uid'])) or (empty($_SESSION['uid']))
     or (!isset($_SESSION['lvl'])) or (empty($_SESSION['lvl']))
     or (!isset($_SESSION['aid'])) or (empty($_SESSION['aid']))
     or (!isset($_SESSION['fir'])) or (empty($_SESSION['fir']))
     ) {header('Location: login.php?e=3');}
?>

kann jemand das Problem erkennen ?

mfg

KRIS

  1. Hi,

    also ich sehe auf die Schnelle nichts, vielleicht zeigst du mal den Code, mit dem du die geänderten Werte in die Session übernimmst...

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. also ich sehe auf die Schnelle nichts, vielleicht zeigst du mal den Code, mit dem du die geänderten Werte in die Session übernimmst.

      beim Profil edit hier :

      # SESSION-Variablen aktualisieren
      $query = "SELECT * from administrator WHERE admin_id = '" . $_SESSION['aid'] . "'";
      $result = mysql_query($query);
      $row = mysql_fetch_row($result);
      $_SESSION['uid']=$row[2];
      $_SESSION['lvl']=$row[1];
      $_SESSION['fir']=$row[9];

      beim allg. edit hier :

      # SESSION-Variablen aktualisieren wenn eigenes Profil geändert wurde
      if ($_GET['uuiidd'] == $_SESSION['uid']) {
      $query = "SELECT * from administrator WHERE admin_id = '" . $_SESSION['aid'] . "'";
      $result = mysql_query($query);
      $row = mysql_fetch_row($result);
      $_SESSION['uid']=$row[2];
      $_SESSION['lvl']=$row[1];
      $_SESSION['fir']=$row[9];}

      1. Hmh,
        also ich bin genau so schlau wie vorher. Du hast allerdings nirgendwo Fehler abgefangen, hast du mal nachgeschaut, was direkt nach dem Setzen in der Session drin ist?
        Ansonsten würde ich für die Zukunft von "SELECT *" abraten und stattdessen auf die konkreten Spalten zuzugreifen, das erleichtert Änderungen an der Datenbank und vermeidet langfristig Probleme.

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Ansonsten würde ich für die Zukunft von "SELECT *" abraten und stattdessen auf die konkreten Spalten zuzugreifen, das erleichtert Änderungen an der Datenbank und vermeidet langfristig Probleme.

          gemacht =)
          ansonsten hat wah's Tipp komischerweise geholfen :)

          danke dennoch KRIS

      2. hi,

        also ich sehe auf die Schnelle nichts, vielleicht zeigst du mal den Code, mit dem du die geänderten Werte in die Session übernimmst.

        Wozu liest du die Daten per SELECT nochmal neu aus der DB aus?
        Du hast sie doch gerade erst geändert, also solltest du doch die neuen Werte bereits in Variablen vorliegen haben - warum schreibst du dann nicht die in die Session, nachdem das Update erfolgreich war?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          also ich sehe auf die Schnelle nichts, vielleicht zeigst du mal den Code, mit dem du die geänderten Werte in die Session übernimmst.

          Sorry, da hab ich mal wirklich unsinnig zitiert.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
        2. Wozu liest du die Daten per SELECT nochmal neu aus der DB aus?
          Du hast sie doch gerade erst geändert, also solltest du doch die neuen Werte bereits in Variablen vorliegen haben - warum schreibst du dann nicht die in die Session, nachdem das Update erfolgreich war?

          Wozu einfach wenns auch kompliziert gibt hab ich mir scheinbar gedacht :/

          im Endeffekt hab ich nicht richtig durchdacht das ganze und konnte nun durch diesen simplen Eingriff eine der 4 Variablen wegfallen lassen ($_SESSION['aid']). Nun existiert das Problem nicht mehr :)

          danke :)