• Willkommen, Gast!
  • Dienstag, 14. Juli 2020, 07:32:50
Position: Home » Boardsolution » Boardsolution v1.4x » Boardsolution v1.40 Beta » Eingeloggt bleiben
Thema: Eingeloggt bleiben [Seite 1 ]

Kein neuer Beitrag wheeloZepet , 29.08.2009, 11:03
Beitrag #1   

IP: n/a
Rang: * * * * * * *
Registrierung: 06.08.2009, 15:24
Homepage: http://www.wheeloman.bplace...
 

Forum-Gott mit 12 Punkte, 8 Beiträge
Hallo,

Zunächst mal: Hut ab! Boardsolution ist wirklich ein tolles Forum. Vielen Dank!

Ich verwende auf meiner Homepage (http://www.wheelo.de.vu) Boardsolution v1.40Beta3 und habe dieses
komplett in meine Homepage eingebettet. Da ich den Login auch für andere Bereiche auf meiner
Homepage verwende, hab ich das Login/logout-feld auf meiner Index-Seite untergebracht. Dank der
Extern-API, über die ich mir bei jedem Klick den Usernamen besorge, bekomme ich auch immer die
aktuelle SID für den Logout-Link und werde immer schön eingeloggt, wenn die Homepage geladen
wird(und die Cookies vorhanden sind). Das funktioniert soweit bestens.

Jetzt wollte ich, dass die User auf ihrem privaten PC angemeldet bleiben. Im normalfall sollten die
Cookies allerdings nach einer gewissen Zeit verfallen. Habe jetzt ein bisschen herumgebastelt, und
den Durchbruch fast geschafft. Ich bin jetzt mal so vorgegangen:

  • Im Loginformular eine Checkbox eingefügt. Name ist "stay_loggedin"
  • In der config/userdef.php die BS_COOKIE_LIFETIME geändert in:
    Code:
    1
    2
    3
    4
    5
    6
    if(isset($_POST['login']) AND isset($_POST['stay_loggedin'])) {
      define('BS_COOKIE_LIFETIME',86400 * 365);
    }
    else {
      define('BS_COOKIE_LIFETIME',900);
    }


Siehe da, Es funktioniert! ...dachte ich zumindest :-(

Das Problem, das ich jetzt noch habe ist folgendes:
Wenn die Session-ID nach 300sec abgelaufen ist werde ich automatisch neu eingeloggt (siehe oben:
extern-API). Das ist auch gut so. Leider schickt mir das Forum aber auch die Cookies: bs_user und
bs_pw erneut, obwohl diese eigentlich noch gültig waren. Beim erneuten senden der Cookies wird die
Gültigkeit auf 900sec eigestellt. Damit wäre das eingeloggt bleiben für die Katz!

Wie kann ich nun folgendes erreichen:
Beim Senden der Cookies prüfen, ob diese vorhanden sind.
- Wenn ja: Gültigkeit prüfen.
- - wenn gültigkeit größer 900sec
- - - Cookie nicht schicken!
So, das wäre dann das letzte Steinchen, das mir noch fehlt.

Ich sage schon mal Vielen Dank im Voraus.
Gruß wheeloZepet

P.S.: Ich bin PHP-Neuling! Ich lerne zwar schnell, aber bitte versucht es mir auf einfache Art zu
erklären. Danke!
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 29.08.2009, 11:16 von wheeloZepet.

 
Kein neuer Beitrag Rafioso , 29.08.2009, 20:21
Beitrag #2   

IP: n/a
Rang: * * * * * * *
Registrierung: 30.08.2006, 22:31
Homepage: http://HomepageStarter.de
Wohnort: O-BW
 

Forum-Gott mit 1723 Punkte, 1537 Beiträge
Hi,

ich verstehe gerade nicht, weshalb du versuchst einen 900 Sekunden Cookie zu erstellen.... aber ich
denke, dein Problem am Logout liegt ganz einfach daran, dass du im Admin Control Panel die
Cookie-Einstellungen nicht richtig eingestellt hast.

MfG
Rafioso

Aktuellste Boardsolution-Version: v1.46
Kommende Boardsolution-Version: TBA
-----------------------------------------------------
Ich erstelle nur noch Modifikationen
für aktuelle Versionen!
-----------------------------------------------------

 
Kein neuer Beitrag wheeloZepet , 30.08.2009, 17:20
Beitrag #3   

IP: n/a
Rang: * * * * * * *
Registrierung: 06.08.2009, 15:24
Homepage: http://www.wheeloman.bplace...
 

Forum-Gott mit 12 Punkte, 8 Beiträge
Hallo,
Die Cookie-Einstellungen im ACP sind korrekt. Die Cookies werde auch gesendet und wieder ausgelesen.
Mein Problem liegt anderswo:

ich möchte erreichen, dass die Beiden Cookies bs_user und bs_pw nicht erneut gesendet werden,
solange sie noch vorhanden sind. Die anderen Cookies (bs_session, ...) sollen davon nicht betroffen
sein.

Die 900 sekunden Cookies brauche ich, damit jeder der sich einloggt nach 15 Minuten Untätigkeit auf
der Homepage wieder rausfliegt. Wer beim Login aber das Häkchen bei "eingeloggt bleiben" setzt, der
fliegt erst nach einem Jahr raus.

Gruß wheeloZepet


 
Kein neuer Beitrag Nils , 31.08.2009, 11:22
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Hallo,

erstmal danke für dein Lob! :)

Ich würde folgendes vorschlagen: Sorg dafür, dass die Cookies bs_user und bs_pw nur gesetzt werden,
wenn die "Eingeloggt-Bleiben-Checkbox" angehakt wurde. Wenn man das nicht tut, würde man dadurch
nur angemeldet bleiben, wenn man jeden Klick innerhalb von 5 min. macht.
Ich habe es zwar nicht ausprobiert, aber es sollte funktionieren, wenn du vor Zeile 215 der
src/user/current.php:
PHP:
1
$this->setup_user($username,$pw);

folgendes einfügst:
PHP:
1
if($input->isset_var('stay_loggedin','post'))

Falls du die 5 min. erhöhen möchtest, müsstest du BS_ONLINE_TIMEOUT in der config/userdef.php
ändern. Allerdings ist mir gerade aufgefallen, dass das bisher gar nicht verwendet wird :) Damit es
das wird, müsstest du in der src/proploader.php unter Zeile 175:
PHP:
1
$c = new BS_Session_Manager();

noch dies hier einfügen:
PHP:
1
$c->set_online_timeout(BS_ONLINE_TIMEOUT);


Noch kurz zu deinem Ansatz: Wie du schon richtig erkannt hast, ist das Problem, dass die Cookies
immer neu gesetzt werden. Und zwar dann, wenn das Online-Timeout abgelaufen ist, so dass man sich
beim nächsten Klick neu einloggen muss. Sind die Cookies bs_user und bs_pw vorhanden, wird es damit
versucht und diese werden neu gesetzt.

mfg Nils

PS: Mir ist gerade bei deinem Forum zufällig aufgefallen, dass der JS-Kalender noch nicht vom
Design her angepasst ist :) Das kannst du in der themes/<theme>/calendar.css machen.

 
Kein neuer Beitrag wheeloZepet , 01.09.2009, 16:13
Beitrag #5   

IP: n/a
Rang: * * * * * * *
Registrierung: 06.08.2009, 15:24
Homepage: http://www.wheeloman.bplace...
 

Forum-Gott mit 12 Punkte, 8 Beiträge
Prima, genau sowas wollte ich!
Habe das jetzt mal so ausprobiert, und es scheint sich wie gewollt zu verhalten. Werde die Sache
noch ein paar Tage im Auge behalten, und dann nochmal berichten.

Wegen dem Kalender: Mit JS-Kalender meintest du bestimmt den BS-Kalender. Oder hab ich da was
übersehen?!? Also bei mir erscheint der Kalender wunderbar passend zum Rest der Homepage.
Vielleicht muss ich das mal mit einem anderen Browser prüfen...

Gruß wheeloZepet

 
Kein neuer Beitrag Nils , 01.09.2009, 17:43
Beitrag #6   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
wheeloZepet hat folgendes geschrieben:
Wegen dem Kalender: Mit JS-Kalender meintest du bestimmt den BS-Kalender. Oder hab ich da was
übersehen?!? Also bei mir erscheint der Kalender wunderbar passend zum Rest der Homepage.
Vielleicht muss ich das mal mit einem anderen Browser prüfen...

Ne, ich meine den Javascript-Kalender, der als kleines "Popup" erscheint, wenn man irgendwo ein
Datum eingeben soll und auf dieses kleine Kalender-Icon klickt :)

mfg Nils

 
Kein neuer Beitrag wheeloZepet , 02.09.2009, 15:29
Beitrag #7   

IP: n/a
Rang: * * * * * * *
Registrierung: 06.08.2009, 15:24
Homepage: http://www.wheeloman.bplace...
 

Forum-Gott mit 12 Punkte, 8 Beiträge
Hallo,

jetzt bräuchte ich nochmal eure Hilfe.
Ich habe noch eine Kleinigkeit gefunden, die ich noch anpassen muss:
Wenn ein User ohne den "stay_loggedin" Schalter eingeloggt ist (also nur für die Session) und sein
Passwort oder User-Namen ändert, dann bekommt er vom Forum den betreffenden Cookie (bs_user oder
bs_pw) geschickt. Damit wäre er jetzt doch für immer angemeldet.
Jetzt möchte ich, dass die betreffenden Cookies nach dem PW/Namenswechsel nur geschickt werden,
wenn der Cookie "bs_pw" vorher schon da war. Ich bräuchte also in etwa sowas:
PHP:
1
2
3
if(isset($_COOKIE[BS_COOKIE_PREFIX.'_pw'])) {
  //... die Stelle, an der der Cookie verschickt wird
}

Ich finde nur die betreffende Stelle im Skript nicht.

Sobald alles klappt, fasse ich das hier nochmal zusammen. Vielleicht braucht das ja jemand anderes
auch.

Danke schon mal!

wheeloZepet

P.S.: der Popup-Kalender ist mir bisher noch gar nicht aufgefallen.

 
Kein neuer Beitrag Nils , 02.09.2009, 17:23
Beitrag #8   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Hallo,

ok, stimmt, daran hatte ich letztes Mal nicht gedacht. Öffne mal die
front/module/userprofile/action_chguserpw.php und füg vor Zeile 132:
PHP:
1
$cookies->set_cookie('user',$user_name);

folgendes ein:
PHP:
1
if($cookies->isset_cookie('user'))

Ein paar Zeilen weiter unten ist das gleiche für das Passwort, das analog geändert werden muss.

mfg Nils

 
Kein neuer Beitrag wheeloZepet , 02.09.2009, 18:08
Beitrag #9   

IP: n/a
Rang: * * * * * * *
Registrierung: 06.08.2009, 15:24
Homepage: http://www.wheeloman.bplace...
 

Forum-Gott mit 12 Punkte, 8 Beiträge
Das ging aber schnell.
Danke für die Hilfe!

wheeloZepet


Druckansicht

n/a n/a 1     (Anzeige: 1 – 9; insgesamt: 9) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Legende: Administratoren, User, Moderatoren
Toggle Ähnliche Themen zu „Eingeloggt bleiben“
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Abfrage, ob User eingeloggt ist / Class 'FWS_ ... 5 118246 16.12.2011, 13:35
Von: PeterD
14.01.2015, 21:40
Von: Rafioso Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
Thema User-Daten nur für eingeloggte sichtbar 3 11262 23.02.2010, 11:45
Von: schoeppsche
24.02.2010, 07:17
Von: langer Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
Thema User-Daten nur für eingeloggte sichtbar 4 2301 15.11.2007, 17:41
Von: schoeppsche
15.11.2007, 22:39
Von: schoeppsche Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
Thema Kommentarfunktion deaktivieren (Kommentare so ... 2 2328 20.12.2006, 23:25
Von: fail
21.12.2006, 14:11
Von: fail Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Anzeige nur wenn nicht eingeloggt 2 818 12.12.2006, 20:02
Von: VaiT
12.12.2006, 21:33
Von: VaiT Zum letzten Beitrag
  • 0.090307 Sek., 10 DB-Zugriffe, 1.601 MiB
  • Powered by Boardsolution v1.46