Variablen Dynamisch erstellen fürSession
Variablen Dynamisch erstellen fürSession
am 12.07.2006 12:48:08 von Steve-Kai Vyska
Hallo Leute,
Ich habe hier eine Seite, die verschiedene Bereiche hat. Für jeden Bereich
gibt es einen BenutzerlĹevel, der sagt, was der User machen darf und was
nicht.
Da ich diese nun nicht ständig aus der dB auslesen lassen will, wollte ich
sie in eine Session schreiben, und dann nur noch von dort auslesen. DAS
Problem ist nun aber, das sich die Bereiche ändern und somit auch die
Variabeln der Session.
Das erstellen der Session auf dynamische weise ist nicht weiter schwer, aber
wenn ich nun daten in die registrierten Variabeln schreiben will, bekomme
ich da ein Problem, nämlich wie spreche ich die an.
normalerweise über $name und das wird dann am Ende gespeichert nur muà ich
den Begriff $name nun dynamisch erstellen und da hapert es bei mir :-(
geht das überhaupt?
Danke für alle Infos
Steve
Re: Variablen Dynamisch erstellen für Session
am 12.07.2006 21:05:28 von Daniel Fett
Steve-Kai Vyska wrote:
> Hallo Leute,
>
> Ich habe hier eine Seite, die verschiedene Bereiche hat. Für jeden Bereich
> gibt es einen BenutzerlĹevel, der sagt, was der User machen darf und was
> nicht.
> Da ich diese nun nicht ständig aus der dB auslesen lassen will, wollte ich
> sie in eine Session schreiben, und dann nur noch von dort auslesen. DAS
> Problem ist nun aber, das sich die Bereiche ändern und somit auch die
> Variabeln der Session.
>
> Das erstellen der Session auf dynamische weise ist nicht weiter schwer, aber
> wenn ich nun daten in die registrierten Variabeln schreiben will, bekomme
> ich da ein Problem, nämlich wie spreche ich die an.
>
> normalerweise über $name und das wird dann am Ende gespeichert nur muà ich
> den Begriff $name nun dynamisch erstellen und da hapert es bei mir :-(
>
> geht das überhaupt?
Ãh ja. Also nein. Dein Ansatz ist irgendwie falsch. Normalerweise
solltest du da keine Veriablennamen dynamisch erzeugen müssen.
Wo kriegst du denn den erforderlichen Benutzerlevel für die Seite her?
Wie speicherst du den aktuellen Level des Benutzers in der Session? Wie
vergleichst du?
Und vor allem: Wo überschreibt hier wer was?
Schick uns doch mal einen aufs Wesentliche reduzierten Beispielcode.
Und Session-Variablen spricht man mit $_SESSION['name'] an, dann klappts
auch mit dem Nachb^W^Wregister_globals = off.
Daniel
--
Zum Thema "Esoterik": http://www.danielfett.de/df_artikel_astrologie
Kleines RegEx-Tutorial: http://www.danielfett.de/df_artikel_regex
Sicherheit in PHP+MySQL: http://www.danielfett.de/df_artikel_sicherheit
Re: Variablen Dynamisch erstellen fürSession
am 13.07.2006 09:57:04 von Steve-Kai Vyska
Hallo,
> Und Session-Variablen spricht man mit $_SESSION['name'] an, dann klappts
> auch mit dem Nachb^W^Wregister_globals = off.
Genau darum geht es :-) also ich eröffne eine session ganz normal mit
session_start();
register('s_name', 's_Bereich1level','s_Bereich2level') etc.
Soweit kein Problem. So nun sind die Bereiche nicht konstant, sondern können
von den Usern angelegt werden. Somit ändert sich auch die Liste der
registrieten Variablen.
Als nächstes lese ich nun aus einer DB die Level des Users aus. und schreibe
diese in die Session, weil die sich nicht ändern, und bei mehreren tausend
gleichzeitigen zugreifen von Usern jedesmal bei jeder Seite neu auslesen,
doch einige Zugriffe auf die DB sind, die man sich sparen könnte.
Um nun aber etwas in die Session-Variable schreiben zu können muà ich diese
ja ansprechen sprich
$s_Bereich1level = "2"
$s_Bereich2level = "1"
und genau hier ist das Problem. Ich kenne die Anzahl nicht, weil die sich ja
ändert sprich ich kann es nicht statisch Programmieren.
Somit kommt eben die Frage auf, wie machen?
Danke aber schon mal für alle Hinweise
Steve
Re: Variablen Dynamisch erstellen für Session
am 14.07.2006 09:22:59 von Sebastian Wessel
Steve-Kai Vyska schrieb:
> Um nun aber etwas in die Session-Variable schreiben zu können muà ich diese
> ja ansprechen sprich
>
> $s_Bereich1level = "2"
> $s_Bereich2level = "1"
Bei mir hieÃen die $_SESSION['s_Bereichlevel'][1] bzw.
$_SESSION['s_Bereichlevel'][2] bzw. wenns dynamisch sein soll mit $i
statt einer konstanten Zahl und $i wird dann dementsprechend immer neu
gesetzt.
> und genau hier ist das Problem. Ich kenne die Anzahl nicht, weil die sich ja
> ändert sprich ich kann es nicht statisch Programmieren.
> Somit kommt eben die Frage auf, wie machen?
Doch, dynamische Statik sozusagen ...
LG
Sebastian
Re: Variablen Dynamisch erstellen fürSession
am 15.07.2006 08:57:41 von Matthias Esken
On Thu, 13 Jul 2006 09:57:04 +0200, Steve-Kai Vyska wrote:
> Genau darum geht es :-) also ich eröffne eine session ganz normal mit
>
> session_start();
> register('s_name', 's_Bereich1level','s_Bereich2level') etc.
Das ist nicht normal. Das ist seit Jahren missbilligt. Statt
session_register verwendet man direkt die Variablen des $_SESSION-Arrays.
Wirf im Zweifelsfall einen Blick in die FAQ:
29.1. Wie realisiere ich Sessions mit PHP?
http://www.php-faq.de/q/q-sessions-wie.html
>
> $s_Bereich1level = "2"
> $s_Bereich2level = "1"
>
> und genau hier ist das Problem. Ich kenne die Anzahl nicht, weil die sich ja
> ändert sprich ich kann es nicht statisch Programmieren.
> Somit kommt eben die Frage auf, wie machen?
Mit Arrays. Wenn du eine dynamische Anzahl von Werten hast ist hier der
Einsatz eines Arrays dringend geboten. Ein Beispiel findest du im Posting
von Sebastian (Message-ID: ).
Gruß,
Matthias