• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Userdaten in Session oder neu aus Datenbank

Seyonne

Mitglied
Hallo zusammen,

Ich beschäftige mich seit kurzem mit Klassen/OOP. Dabei verwundert mich die Tatsache nach jedem HTTP_Request ein neues Objekt erstellen und wieder mit annähernd identischen Eigenschaften aus der DB zu füttern zu müssen.

Ich überarbeite seit einer Weile eine Seite mit diversen Modulen wie Zeiterfassung, Fahrtenbuch etc. die ich 2010 'gehardcoded' habe und will diese nun mit Klassen ("OOP") optimieren und folglich erweitern.
Bislang nur von mir genutzt wird mein Bruder einige Funktionen für sich und evtl. für seine angestellten nutzen wollen.

Aber jetzt mal zur eigentlichen Frage:
Wie ist denn der Konsens zwischen Userdaten (Objekt von Klasse User) per SESSION zu übergeben oder Daten aufgrund UserID immer wieder neu aus DB auslesen?

Heute Nachmittag hatte ich beim Login ca. 15 Variablen in die $_SESSION geschrieben.
Mittlerweile übergebe ich das Objekt an die SESSION.

PHP:
//Header
session_start();
if(!isset($_SESSION['User']))
  $user = new User();
else
  $user = $_SESSION['User'];

//...

//Footer
$_SESSION['User'] = $user;

Jetzt stelle ich leider fest (var_dump($_SESSION);) das auch das Objekt $mySQL wessen Konstruktor im Konstruktor von $user aufrufe, in der $_SESSION gespeichert wird und der var_dump mir die Datenbank Informationen ausgibt!
Die Eigenschaften als protected zu deklarieren hat auch nichts geholfen.
Auch $querySql gibt der var_dump aus...
-->Edit: Die Ausgabe der Klasse MySQL basiert auf User Extends MySQL.
Wenn ich ein Objekt von MySQL im Konstruktor von User erzeuge kann ich MySQL-Obj jedoch nicht in anderen Methoden verwenden... wenn ja wie?


PHP:
public function __construct(/*$objSQL/*, $emailUser*/)
        {
            //$this -> nameCustomer = "Unregistriert";
            //$this -> objSQL = $objSQL;
            mySQL::__construct();
            $this -> emailUser = ""/*$_SESSION['emailUser']*//*$emailUser*/;
         
            $querySql = "SELECT
                        u.idUser,
                        u.nameUser,
                                                ..... usw
            }

Daten die ich übergeben will sind neben Userid, Email und userstatus 'vorerst' die Zugriffsrechte auf die diversen Module (modul1, ..., modul[n]).

Ich habe was von __sleep() / __wake() gelesen aber noch keine Seite gefunden welche mir die korrekte Anwendung heute Abend noch begreiflich machen konnte.

Kurze Rede langer Unsinn:
Wie macht man sowas als Nicht-Leihe/Experte?

Vielen Dank im Voraus,
Marcus
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben