Cookies? Sessions?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anhand
beitrag
best
besucher
eintrag
fehler
gel
gespart
hole
klappe
kontrolle
login
meinst
rangliste
session
speicher
username
variable
versehen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
cookies und ip
-
hm... hat denke ich vor- und nachteile
cookies akzeptieren immer weniger aller user. daher is fraglich ob jeder die seite "in vollem ma?e" anschauen kann. sessions is glaube ich nicht abh?ngig von den einstellungen des users.
ich selbst hab mal n eigenes login geschrieben, wo mit jedem link sozusagen ne "sid" (session id) mitgesendet wird. daran wurde dann der user wieder erkannt. ?hnlihc, oder genauso funkt das ja auch mit sessions, nur da hat man doch glaub ich wieder die sache, mit dem header, oder? das das vor JEDER jeglichen ausgabe gestartet werden muss, genauso wie bei den cookies.
bei dem selbst geschriebenen ist das unrelevant.
aber, wie gesagt, alles vor- bzw nachteile, meiner meinung nach.
mfg -
lagerhaus schrieb:
Hallo,
ich m?chte w?hrend des Surfens im eingeloggten Bereich den User identifizieren. Was w?rdet ihr vorschlagen?
Cookies? Sessions? Die IP-Adresse? Was anderes?
Warum w?rdet ihr das w?hlen? Habt ihr mit einem System gute oder schlechte Erfahrungen gemacht?
MfG lagerhaus
Nimm SessionID und Datenbank!
Denn Cookies kann man f?lschen und die IP kann durch einen Proxy verf?lscht werden, ausserdem ?ndert die sich nach jedem Reboot des Modems ...
-
lagerhaus schrieb:
Nimm SessionID und Datenbank!
Also, ich muss doch dann mit jedem Link die SessionID mitgeben, oder?
Was meinst du mit Datenbank? Meinst du, dass ich nur wenige Variablen mitgebe und dann die 'fehlenden' aus der Datenbank hole?
Danke!
MfG lagerhaus
Wenn der Besucher Cookies akzeptier, so wird die SessionID nur einmal an die URL angeh?ngt. Ansonsten wird sie immer per URL ?bergeben.
ok, aber wen st?rt das
Zu der Datenbank:
Mach es so, dass ALLE eingeloggten User (optional auch Besucher) in der Datenbank gespeichert werden!
Beispiel:
Ein User kommt mit der SessionID 23hf524s6aq8 in der URL angerennt und will in den internen Bereich.
Du ?berpr?fst, ob sich ein Eintrag in der Datenbank befindet, welcher dieselbe SID hat.
Wenn eine gleiche SessionID gefunden wurde, so gilt der User als eingeloggt, ansonsten gelangt er nicht in den internen Bereich.
-
lagerhaus schrieb:
Nimm SessionID und Datenbank!
Also, ich muss doch dann mit jedem Link die SessionID mitgeben, oder?
Was meinst du mit Datenbank? Meinst du, dass ich nur wenige Variablen mitgebe und dann die 'fehlenden' aus der Datenbank hole?
Danke!
MfG lagerhaus
Wenn der Besucher Cookies akzeptier, so wird die SessionID nur einmal an die URL angeh?ngt. Ansonsten wird sie immer per URL ?bergeben.
ok, aber wen st?rt das
Zu der Datenbank:
Mach es so, dass ALLE eingeloggten User (optional auch Besucher) in der Datenbank gespeichert werden!
Beispiel:
Ein User kommt mit der SessionID 23hf524s6aq8 in der URL angerennt und will in den internen Bereich.
Du ?berpr?fst, ob sich ein Eintrag in der Datenbank befindet, welcher dieselbe SID hat.
Wenn eine gleiche SessionID gefunden wurde, so gilt der User als eingeloggt, ansonsten gelangt er nicht in den internen Bereich.
genau so meine ich das doch auch
das is meiner meinung nach die einfachste variante.
-
Na ja, nur ein Denkansto?:
Ich hab mir eine Art Session-System mit einer My-SQL-Datenbank gebaut...
Wenn man sich einloggt, wird ein Eintrag erstellt, wenn man sich ausloggt, wird er wieder gel?scht...
So einfach geht das...
Funktioniert auch ganz gut, bis auf ein paar Sachen:
Den automatischen Logout mnach einer best. Zeit gibts noch nicht und auch ein paar andere Features funktionieren noch nicht bzw. sind noch nicht eingebaut! -
Wenn der Besucher Cookies akzeptier, so wird die SessionID nur einmal an die URL angeh?ngt. Ansonsten wird sie immer per URL ?bergeben.
ok, aber wen st?rt das
Also muss man in die ersten Links von der "Erfolgreich-eingeloggt-Seite" mit SessionID als Get-Variable versehen, die anderen (bei Cookies) muss man nicht mehr? Stimmt das so?
Und wenn keine Cookies angenommen werden, dann muss die SessionID immer ?bergeben werden, bei allen Links?
Na ja, nur ein Denkansto?:
Ich hab mir eine Art Session-System mit einer My-SQL-Datenbank gebaut...
Wenn man sich einloggt, wird ein Eintrag erstellt, wenn man sich ausloggt, wird er wieder gel?scht...
So einfach geht das...
Funktioniert auch ganz gut, bis auf ein paar Sachen:
Den automatischen Logout mnach einer best. Zeit gibts noch nicht und auch ein paar andere Features funktionieren noch nicht bzw. sind noch nicht eingebaut!
Aber dann wei? man nicht, welcher User das ist. Doch das m?chte ich. (Hab' ich nicht geschrieben, mein Fehler).
MfG lagerhaus
EDIT: @Nachposter ranglisten: Doch ich hab's verstanden, das was du geschrieben hast. Ich wei? nur nicht, wie ich den User identifizieren soll.
Beitrag ge?ndert am 26.08.2005 22:18 von lagerhaus -
Na ja, nur ein Denkansto?:
Ich hab mir eine Art Session-System mit einer My-SQL-Datenbank gebaut...
Wenn man sich einloggt, wird ein Eintrag erstellt, wenn man sich ausloggt, wird er wieder gel?scht...
So einfach geht das...
Funktioniert auch ganz gut, bis auf ein paar Sachen:
Den automatischen Logout mnach einer best. Zeit gibts noch nicht und auch ein paar andere Features funktionieren noch nicht bzw. sind noch nicht eingebaut!
jo, und bei jedem seitenaufruf schaust du doch in die db, ob diese session vorhanden ist. in die selbe kontrolle kannst du doch auch folgendes einf?gen.
jede "session" hat ein expire time, diese kontrollierst du, nat?rlich alle die in der db vorhanden sind. immer wenn jemdn ne seite beritt, oder wechselt, wird dessen expire hochgesetzt (was zu der session passt), is das dann abgelaufen, l?scht das dann sozusagen der n?chste user, wenn die kontrolle kommt. d.h. der l?scht dann alle expire die abgelaufen sind, somit sind die user dann ausgeloggt. verstanden? glaube nich, was?
@lagerhaus
Aber dann wei? man nicht, welcher User das ist. Doch das m?chte ich. (Hab' ich nicht geschrieben, mein Fehler).
das siehst du doch anhand der ?bergebenen sessionid. diese musst du in einer mysql speichern, mit username und so. daran kannst du dann die user identifizieren.
mfg
Beitrag ge?ndert am 26.08.2005 22:18 von ranglisten -
lagerhaus schrieb:
[..]
Aber dann wei? man nicht, welcher User das ist. Doch das m?chte ich. (Hab' ich nicht geschrieben, mein Fehler).
[..]
Du kannst in Deiner Tabelle auch Spalten wie Username oder Userid erstellen. Damit kannst Du den Benutzer ganz leicht identifizieren. -
lagerhaus schrieb:
Wenn der Besucher Cookies akzeptier, so wird die SessionID nur einmal an die URL angeh?ngt. Ansonsten wird sie immer per URL ?bergeben.
ok, aber wen st?rt das
Also muss man in die ersten Links von der 'Erfolgreich-eingeloggt-Seite' mit SessionID als Get-Variable versehen, die anderen (bei Cookies) muss man nicht mehr? Stimmt das so?
Und wenn keine Cookies angenommen werden, dann muss die SessionID immer ?bergeben werden, bei allen Links?
Ach quak!
Wer w?rde dazu Lust haben?
Deshalb macht PHP bzw. der Interpreter das alles ganz alleine. ;)
Du musst legendlich die Session starten und "f?llen".
Na ja, nur ein Denkansto?:
Ich hab mir eine Art Session-System mit einer My-SQL-Datenbank gebaut...
Wenn man sich einloggt, wird ein Eintrag erstellt, wenn man sich ausloggt, wird er wieder gel?scht...
So einfach geht das...
Funktioniert auch ganz gut, bis auf ein paar Sachen:
Den automatischen Logout mnach einer best. Zeit gibts noch nicht und auch ein paar andere Features funktionieren noch nicht bzw. sind noch nicht eingebaut!
Aber dann wei? man nicht, welcher User das ist. Doch das m?chte ich. (Hab' ich nicht geschrieben, mein Fehler).
MfG lagerhaus
Beitrag ge?ndert am 26.08.2005 22:14 von lagerhaus
Ok, also ich erkl?rs dir mal, wie ich es machen w?rde :
Eine Datenbank mit ID |USER | PASSWORD
1. Ein Login Formular
2. Eine Seite zum auswerten des Login Forumlars
3. Auf jeder Seite
1. Zwei Eingabefelder namens "user" und "password"
2. Die Daten aus dem Eingabefeld auslesen.
2.1 Den Usernamen aus der Datenbank ausw?hlen, falls er vorhanden ist. Dann das Passwort auslesen und mit dem ?bergebene Passwort vergleichen.
2.2 Wenn das ?bereinstimmt, dann eine Session starten mit den Werten :
USER und PASSWORD
2.3 Eine Variable namens "$eingeloggt" auf true setzten. Diese wird aber zuerst immer auf false gesetzt, am besten am Anfang des Scrites.
3. Die Session USER und PASSWORD auslesen und dann wie in 2.1 weiter verfahren.
Ich hoffe, dass das ganze dir einen kleinen ?berblick verschafft.
Beitrag ge?ndert am 26.08.2005 22:23 von lucas9991 -
ranglisten schrieb:
das siehst du doch anhand der ?bergebenen sessionid. diese musst du in einer mysql speichern, mit username und so. daran kannst du dann die user identifizieren.
mfg
Ach so, die SessionID muss ich auch ?bergeben. Ja dann ist alles klar. Ich dachte, die Arbeit mit dem st?ndigen "?SID=$sid" eintragen k?nnte mit dem System gespart werden.
MfG lagerhaus -
ranglisten schrieb:
das siehst du doch anhand der ?bergebenen sessionid. diese musst du in einer mysql speichern, mit username und so. daran kannst du dann die user identifizieren.
mfg
Ach so, die SessionID muss ich auch ?bergeben. Ja dann ist alles klar. Ich dachte, die Arbeit mit dem st?ndigen "?SID=$sid" eintragen k?nnte mit dem System gespart werden.
MfG lagerhaus
Lesen bildet. :P
Ich habe doch gerade gesagt, dass das der PHP Interpreter macht...
Und du nix machen musst.
Au?er bei Iframes aufpassen, denn dort wird keine Session ID an die URL drangeh?ngt. -
lucas9991 schrieb:
Du musst legendlich die Session starten und 'f?llen'.
Und warum funktioniert das nicht?
session1.php :
session_start(); $_SESSION["UserID"] = "20"; echo $_SESSION["UserID"]; echo '<a href="session2.php">Link</a>'; ?>
session2.php
session_start(); echo $_SESSION["UserID"];
Auf der ersten Seite wird 20 ausgegeben, auf der 2. aber nicht. Was ist der Fehler? Wenn man keine SessionID angeben muss......
-
lucas9991 schrieb:
Mhh.. eingetlich m?sste das klappen!
Vllt liegt woanders der Fehler?
Komisch, hier auf Lima geht es, auf meinem Apache zu Hause nicht.
Ich habe festgestellt, dass ein Cookie gesetzt wird, wenn man ihn zul?sst. Sonst nicht. - Sehr praktisch.
Danke f?r eure Hilfe, ich benutze Sessions.
MfG lagerhaus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage