Was steht in der Session Variable

Gesperrt
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Was steht in der Session Variable

Beitrag von stefkey » So 17. Mai 2015, 13:58

Hallo zusammen,

kann mir jemand helfen? Ich werde gefragt was in der Session-Variable steht wenn sich jemand im Fronten einloggt.
Er fragt so: "... Was steht in der Session-Variable? Steht dort die User-ID, oder der Name, oder die Email-Adresse, etc…?..."

Ich finde nur den Session-Namen. Aber das Cookie hat doch einen Inhalt, oder?

Grüße, stefkey

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von Oldperl » Mo 18. Mai 2015, 10:02

Servus stefkey,

schau mal ob Dir da das Wiki weiterhilft :arrow: http://www.contenido-wiki.org/wiki/inde ... mvariablen

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von Faar » Mo 18. Mai 2015, 12:26

Meines Wissens steht in der Session-Cookie als Inhalt nur die Session-ID.
Alles andere wird über die Datenbank verwaltet.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von stefkey » Di 19. Mai 2015, 15:37

Hmmm. Danke sehr.

Ich betreue für einen gemeinnützigen Verein im Gesundheitswesen eine Website. Dort gibt es einen "geschützen Bereich". Nun wird in diesem Bereich eine externe Datenbank nach Datensätzen abgefragt. Man fragt mich nun was in der SessionID gespeichert ist, bzw wie sich die Benutzer identivizieren lassen.
Deren Datenbank muss quasi wissen wer da gerade anklopft um Daten abzufragen.

Wenn in dem Session-Cookie nichts gespeichert ist, müsste ich in der php-Datei basteln damit dort zB die BenutzerID abgelegt wird. Welche Datei ist da relevant?

Danke sehr, stefkey

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von Faar » Di 19. Mai 2015, 17:56

Bei 4.8 schau mal die Variable $auth an: http://www.contenido-wiki.org/wiki/inde ... en#.24auth
Da ist Name und User-ID des Frontend-Nutzers drin.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von stefkey » Di 19. Mai 2015, 18:24

ahhh Danke!
Ich bin kein Programmierer, aber ich habe einfach mal in ein Modul folgendes eingebaut:

echo $auth->auth["uid"];

Und diese, es hat funktioniert :-) freu freu. Vielen Dank!!!

Und nun?

Die haben in der Tabelle con_frontendusers nämlich eine Spalte eingesetzt. In dieser Spalte wird abgelegt welche Rechte der Frontend-User bei denen in der Datenbank hat.
Die wollten also jetzt irgendwie den User identifizieren und dann in dieser Spalte schauen welche Rechte der Frontend-User hat und zack... bekommt der Fronten-User bestimmte Daten zu sehen.

Reicht es etwa wenn ich den Leuten einfach sage sie können die UserID einfach mit $auth->auth["uid"] abfragen?
Oder kann ich das ganze noch schöner mitteilen mit bissl Code drumherum (und würde das dann jemand posten :oops: )

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von Faar » Di 19. Mai 2015, 19:07

Eigentlich eine SQL ähnlich wie:

Code: Alles auswählen

SELECT * FROM con_frontendusers WHERE id='$auth->auth["uid"]' LIMIT 1
Ich habe das Tabellen-Feld nicht sicher im Kopf für die ID, kann also ein wenig anders lauten.
In der Abfrage wäre dann durch das * folglich auch das drin, was die Leute da in eine Spalte rein geschrieben haben.
Bisserl Code darum kann man kaum machen, wenn man die Spaltennamen nicht kennt und auch nicht die Daten, die vielleicht nicht in Reinform vor liegen.
LIMIT 1 sorgt dafür, dass nur ein Datensatz abgerufen wird (weil es pro ID nur einen geben dürfte) und die Datenbank dadurch nicht lange nach weiteren Datensätzen sucht.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von stefkey » Di 19. Mai 2015, 19:24

Hey klasse! Die Spalte heißt "belong_to_group" und ein Eintrag wäre zB "all" oder "group2"
Hilft das?

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von Faar » Di 19. Mai 2015, 21:00

Code: Alles auswählen

$sql = "SELECT `belong_to_group` FROM " . $cfg["tab"]["frontendusers"] . " WHERE idfrontenduser='" . $auth->auth["uid"] . "' LIMIT 1";
$db->query($sql);
$db->next_record();
$groupbelonger = $db->f('belong_to_group');
Ich hab's nicht getestet sondern nur so theoretisch zusammengebaut, sollte aber doch irgendwie gehen.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von stefkey » Di 19. Mai 2015, 22:09

Ui Danke sehr.

Ich habe gleich mal irgendwo platziert. Und zwar folgenden Code:

Code: Alles auswählen

$sql = "SELECT `belong_to_group` FROM " . $cfg["tab"]["frontendusers"] . " WHERE idfrontenduser='" . $auth->auth["uid"] . "' LIMIT 1";
$db->query($sql);
$db->next_record();
$groupbelonger = $db->f('belong_to_group');
$groupbelonger = $db->query($sql);

echo $groupbelonger;
Da steht nun im Frontend: Resource id #378

Ich hab aber die idfrontenduser 1, und in der Zelle belong_to_groub habe ich nicht "Resource id #378" sondern "all" eingeschrieben.

Woher kommt denn das?

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von stefkey » Di 19. Mai 2015, 22:43

STOP! War mein Fehler!

Dein Code geht! Vielen Dank.
In vorigem Post sieht man noch ne Zeile $groupbelonger = $db->query($sql);
Das waren noch Reste um den Code zu verstehen. Am Ende habe ich die vergessen wegzumachen und habe mich selber verwirrt.
Beim Verständnis-Check habe ich auch entdeckt das man die erste und zweite Zeile zusammenfassen kann in:

Code: Alles auswählen

$db->query("SELECT `belong_to_group` FROM " . $cfg["tab"]["frontendusers"] . " WHERE idfrontenduser='" . $auth->auth["uid"] . "' LIMIT 1");
Aber gut das du es nicht so geschrieben hast, denn so fiel es mir leichter es zu verstehen! Danke.

Einzig verstehe ich noch nicht warum das $db->next_record(); notwendig ist und was es macht. Ohne diesen Befehl erscheint im Fronten nichts.
Hmmm, ich forsche weiter.

Vielen Dank nochmals für Euere Mühe! Danke! :D

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von homtata » Di 19. Mai 2015, 23:19

Etwas vereinfacht gesprochen ist das ungefähr so:

Code: Alles auswählen

$db->query($sql);
ist die eigentliche Abfrage der Datenbank. Das Ergebnis stell dir mal wie eine Excel-Liste vor, pro Treffer eine Zeile mit den zugehörigen Werten in den Zellen. Dass in deinem Fall die Abfrage von vornherein schon auf 1 begrenzt wird, ist für die Ergebnisliste erstmal unerheblich. Wir haben durch query einfach eine Ergebnisliste, von der wir nur wissen, dass sie im Prinzip Ergebnisse enthält.

Code: Alles auswählen

$db->next_record();
sagt jetzt: geh in die Ergebnisliste und nimm die nächste Zeile (das ist am Anfang logischerweise = der erste Treffer in der Liste). Dann kann für diese Zeile auch auf die zugehörigen Werte in den Zellen zugegriffen werden. OHNE next_record hast du zwar eine Liste, aber springst gar nie zu einer konkreten Zeile, daher gibts auch keine Ausgabe.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Was steht in der Session Variable

Beitrag von stefkey » Di 19. Mai 2015, 23:26

Aha, Danke!

Dann ist man ohne $db->next_record(); quasi in der Zeile null, und da steht nichts. Verstehe, danke für deine Mühe und viele Grüße, stefkey

Gesperrt