PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Angemeldet bleiben" verstecken


Leinad
07.06.2006, 14:30
Hallo,

ich würde gerne immer, wenn sich jemand anmeldet das Cookie userid setzen, also hab ich aus der "checkbox" ein "hidden" gemacht, sodaß jeder, der sich anmeldet so lange angemeldet bleibt, bis er sich wieder abmeldet.

Spricht da irgendwas rechtliches dagegen, von wegen "dauerhafte Cookies auf dem Rechner der Benutzer speichern" oder sowas?

Ich denke zwar eher nicht, da das Cookie ja niemanden ausspioniert, aber bevor es später doch Ärger gibt frag ich lieber mal nach.

Tomek
07.06.2006, 15:03
Ich würde davon abraten. Es möchte sich vielleicht nicht jeder für immer einloggen, z.B. wenn jemand in einem Internetcafe sitzt. Wenn du die Option wegnimmst und dieser jemand vergisst sich manuell abzumelden, dann kann der nächste an dem PC mit dem vorher angemeldeten Benutzernamen weiter machen, was ein mögliches Sicherheitsrisiko darstellt.

Leinad
07.06.2006, 15:38
Das stimmt natürlich, an Internetcafés hab ich gar nicht gedacht.
Es gäbe natürlich auch die Möglichkeit, die Expire_Zeit des userid-Cookies auf 0 zu setzen, dann fehlt aber wiederum die Option, sich dauerhaft anzumelden...
welches ist jetzt das kleinere Übel?

Tomek
07.06.2006, 15:46
Darf ich fragen, wieso du das unbedingt ändern willst? Ich persönlich finde es gut, dass man die zwei Möglichkeiten beim Anmelden hat.

Leinad
07.06.2006, 16:12
Klar, ich finds auch gut, daß es zwei Möglichkeiten gibt und würde das auch gern so lassen, aber das Problem ist, daß es auf der Seite noch andere Sachen außer dem Forum geben soll, z.B. ein Wiki. Wenn dort dann jemand reinschreibt, der im Forum angemeldet ist, soll der Forenname da stehen, damit man sich nicht bei 2 Sachen extra anmelden muß.
Das klappt auch alles ganz gut, aber nur solange das cookie userid gesetzt ist, bzw. klappt es auch mit sessionhash, das Problem dabei ist nur, daß es nicht gelöscht wird, wenn man sich abmeldet :(
Das Forum erkennt am sessionhash wohl irgendwie, ob jemand angemeldet ist, oder nicht. Aber ich weiß nicht genau, wie. Wenn du nen guten Tip für mich hast wär ich natürlich dankbar.

Gruß
Daniel

Leinad
07.06.2006, 18:20
Hallo, hat sich erledigt, hab jetzt rausgefunden, wie man das am sessionhashcookie überprüft, auf die Idee kam ich aber erst, als ich dir die letzte Antwort geschrieben hab.
Hilfe zur Selbsthilfe nennt man das glaub ich :)

Man muß ja eigentlich nur überprüfen, ob in der Spalte loggedin in der Tabelle session eine 0 steht.

Hab jetzt mal ein paar Tests gemacht und es funktioniert soweit alles. Falls jemandem auffällt, daß ich mich hier irre und evtl. ein Sicherheitsrisiko eingebaut hab, bitte Bescheid sagen.

Leinad
13.06.2006, 09:58
Hallo,
eine kurze Frage hätt ich noch zu dem Thema:
Eigentlich hätte ich erwartet, daß loggedin in der Tabelle session entweder 0 oder 1 ist, habe aber gesehen, daß in der Spalte manchmal auch eine 2 steht.
Kann mir jemand vielleicht kurz erklären, was das zu bedeuten hat?
Und ist es sinnvoller zu überprüfen, ob jemand eingeloggt ist, indem man abfragt ($session->loggedin > 0) oder ($session->loggedin == 1)?

Mystics
13.06.2006, 10:03
includes/functions.php: if ($vbulletin->session->vars['loggedin'] == 1 AND !$vbulletin->session->created)
{
# If loggedin = 1, this is out first page view after a login so change value to 2 to signify we are past the first page view
# We do a DST update check if loggedin = 1
$vbulletin->session->set('loggedin', 2);
}Überprüfe einfach, ob es generell gesetzt ist:
if ($session->loggedin)

Leinad
13.06.2006, 10:05
Danke, das ist genau das, was ich wissen wollte :)