Seite 1 von 1

Landkreis-Unterscheidung / session-management

Verfasst: 20.01.2005 13:54
von boo
moin zusammen,

meine suche in foren blieb bis jetzt leider ergebnislos... und nun zur sache:

ich möchte auf der seite anhand einer variablen (z.b.: $s ) gewisse bereiche unterscheiden; in meinem falle landkreise (münchen, augsburg, hamburg, berlin etc). in der datenbank sind informationen (z.b. Autowerkstätten, restaurants, frauen ;) etc) gespeichert, die zu den jeweiligen landkreisen zugeordnet sind. und nachdem ein berliner mit einer münchner autowerkstatt reichlich wenig anzufangen weiß...

1. mögliche, schlampige lösung:
man setzt mehrere foren auf (verschiedene verzeichnisse) und setzt eine globale var (z.b. in der extensions.php) => somit wäre die variable überall verfügbar und man kann sich die jeweiligen info´s aus der db ziehen. NACHTEIL: ändert man einmal den code, muss er überall (jedes installierte verzeichnis) hochgeladen werden => schei***e

2. möglichkeit
man schreibt eine variable in die session - k.a. wie des geht nachdem phpbb ja ein eigenes session-management hat - und übergibt zu anfangs, z.b. mithilfe einer extra startseite, die variable (z.b. index.php?s=1 für berlin, s=2 für münchen)

meine frage bezieht sich jetzt auf die 2. möglichkeit, habe auch schon selbst rumprobiert, mit dem ergebnis das ich mich nicht mehr einloggen konnte.

vielleicht kennt sich einer von euch besser mit dem session-mangement aus, der mir erklären kann wie ich eine variable im phpbb für den zeitpunkt des useraufenthalts "mitschleifen" kann (so wie die benutzerdaten).

werd selbst zwar auch noch weiterprobieren, wäre über eine antwort aber sehr dankbar

Verfasst: 20.01.2005 15:25
von Blutgerinsel
hmm globale Vars betrachte ich als /dev/null

Soweit ich das noch richtig in Erinnerung habe erzeugt PHPBB ein Cookie während der Loginzeit mit dem Suffix _sid und legt darin denke ich die eigens erzeugte SessionID ab.....

Daneben gibts noch ein Cookie _data wo das verschlüsselte PW + die user_id drinnen steckt....

Und da stellt sich die Frage wenn ich ein _data Cookie gesetzt habe wird dann dennoch ein _sid Cookie erzeugt? Möglich wäre es mit und ohne......

Das müsste ich mir erst anschauen......
Jedenfalls könnte man zusätzliche Vars unterbringen....


Abgesehen davon weiss ich nicht die konkrete Situation.....Sollen Foren versteckt werden etc.
Man kann auch weitere Attribute hinzufügen und diese an den jeweiligen Stellen auslesen und dann reagieren.....Alles eine Frage der Situation.....

Aber wenn du unbedingt die Sessionverwaltung umbiegen willst dann nur zu :wink:

Verfasst: 20.01.2005 15:51
von boo
global vars verwende ich auch sehr ungern... ist schlampig ;)

werden die ganzen sessions nicht im der db (phpbb_sessions) gespeichert, und anhand der ip dem user zugeordnet? dachte des läuft so, und cookies werden nur beim autologin gesetzt... ?!?

falls ein user keine cookies akzeptiert, könnte er ja bei der methode die site garned anschaun (keine region -> startseite) :roll:

überlegung war auch schon, das ganze in die usertabelle reinzuschreiben (dann wär´s ja recht leicht), aber dann ist eine anmeldung zwingend - was nicht in unserem sinne war.

was ich bräuchte ware eben, das bei´m session-start die variable gesetzt wird, die der user zuanfangs gewählt (per parameter übergeben) hat...

hmm.. mal den ganzen code durchfieseln...

Verfasst: 20.01.2005 22:02
von boo
also jungs, problem ist gelöst...

für alle die´s interessiert:

einfach ein feld in der sessions-tabelle einfügen... und in der functions/sessions.php bei session_begin() und session_pagestart() übergabeparameter hinzufügen (drauf achten das sie nen standardwert hat z.b. 0; sonst muss man in jeder datei bei session_pagestart() den parameter hinzufügen)
abfragen ob > 0 -> dann wurde var gesetzt den update in der sessions-tab und insert in der sessions-tab updaten (var hinzufügen) - ist in der session_begin und session_pagestart func...

in der index (da hab´s i gemacht) wird einmal die übergabe abgefragt, falls vorhanden session_pagestart( $user_ip, PAGE_INDEX, $userdefinedvar ) sonst normal aufrufen....

über $userdata[] kann man dann auf die var zugreifen (funzt auch, wenn der user unangemeldet online ist, und sich dann anmeldet)

danke für schnelle antwort...

p.s. @Blutgerinsel: die sessions laufen sowohl über cookies als auch über get - kommt drauf an, ob der user cookies erlaubt. danke für die info