anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 25 Apr, 2024 08:53

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Logout Function
BeitragVerfasst: Mi 02 Aug, 2006 09:24 
Offline
Held
Held
Benutzeravatar

Registriert: Sa 10 Sep, 2005 11:26
Beiträge: 248
Wohnort: NRW
Wollt ma wissen welche function in logd dafür zuständig ist das der user nach 15 min inaktivität oder des nichts tuhens ausgeloggt wird. Und wie sie vom aufbau her funzt also wenn wer die function noch beschreiben kann wärs super ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 02 Aug, 2006 10:03 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Siehe dazu common.php:
[php]if (time()-getsetting("LOGINTIMEOUT",900) > $session['lasthit'] && $session['lasthit']>0 && $session['loggedin']){
$session=array();
$session['message'].="`nDeine Session ist abgelaufen!`n";
}[/php]

Für den User an sich:
[php]if (!$session[user][loggedin] || (0 && (date("U") - strtotime($session[user][laston])) > getsetting("LOGINTIMEOUT",900)) ){
$session=array();
redirect("index.php?op=timeout","Account ist nicht eingeloggt, aber die Session denkt, er ist es.");
}[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 03 Aug, 2006 11:46 
Offline
Held
Held
Benutzeravatar

Registriert: Sa 10 Sep, 2005 11:26
Beiträge: 248
Wohnort: NRW
und wie würde so etwas ohne logd code aussehen? mit den standart php?
ach und fehlt da nicht die stelle wo loggedin auf 0 gesetzt wird ôÔ sonst ist er ja laut datenbank immer noch eingeloggt. Ach und wenn ich mich nicht recht täusche ist es in phph doch folgender maßen ein befehl SQL oder sonstiges kann nur beim updaten einer seite ausgeführt werden wie kann dann eine person ausgelogt werden wenn sie nichts macht? es wird ja keine seite aktualisiert oder neu geladen... und wenn man das fenster durch den button ganz oben rechts schlie0ßt das gleiche wie funktioniert es eigentlich das der user nach 15 mins ausgelogt wird obwohl er nichts macht?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 03 Aug, 2006 13:53 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Das ist doch sozusagen das gleiche verfahren?
Wenn du den Schnippsel genauer betrachtest, sieht man das die Session des Users überprüft ist - ist diese Überschritten so wird er Automatisch ausgeloggt!

Viel mehr ist da nicht zu erklären und wenn du mehr bezüglich des PHP Codes Wissen willst, dann geh am besten in ein Forum wo Sie sich darauf spezialisiert haben.

Letztendlich gehts hier um LotGD und kein Support für LotGD Scripte die Abseits dessen liegen/sind. Btw. ein genaueres betrachten der PHP Manual kann sehr Sinnvoll sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: So 03 Jan, 2010 22:59 
Offline
Eingeweihter
Eingeweihter

Registriert: Mo 31 Aug, 2009 09:26
Beiträge: 67
Geschlecht: Männlich
LoGD: http://nydoria.at
Ich weiß, der Thread ist ziemlich alt, aber nachdem der Thread Titel so gut passt wollte ich keinen neuen aufmachen:
Ich möchte einen zusätzlichen Logout anbringen in einem auf der Anpera Version basierenden Logd.
Dazu hab ich mir die verschiedenen Logouts angesehen, und wurde auch gut fündig, allerdings auch verunsichert wie genau das ablaufen muss, da eine davon $this->bbcode_second_pass_code('', 'saveuser();')drinnen hat und die anderen jeweils einen Datenbank Befehl. Ich möchte nichts vergessen durch einen unvollständigen Logout, auf das ich dann erst viel später draufkomme, deswegen würde mich interessieren, ob das "saveuser();" einfach den direkten Datenbankbefehl ersetzt (was ich vermute).
Und wenn ja, dann müsste das folgende ja ein vollständiger Logout sein:$this->bbcode_second_pass_code('', 'if ($_GET['whateverop'] == "anotherlogout"){
if $session['user']['loggedin']{
$session['user']['loggedin']=0;
$session['user']['location']=9;
debuglog("hat sich irgendwo ausgeloggt");
$sql="UPDATE accounts SET loggedin=0,location=9 WHERE acctid = ".$session['user']['acctid'];
db_query($sql) or die(sql_error($sql));
}
$session=array();
redirect("index.php");
}')
oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 05:54 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
or die(sql_error($sql)); kannst du mal getrost weglassen, da dies schon in der db_query funktion enthalten ist.

saveuser() speichert die $session daten ab und wird sowieso in redirekt() und im page_footer() aufgerufen, was wohl reicht.

Darum wäre auch

$session['user']['loggedin']=0;
$session['user']['location']=9;


in kombination mit

$sql="UPDATE accounts SET loggedin=0,location=9 WHERE acctid = ".$session['user']['acctid'];
db_query($sql);


sinnlos.


Ist noch sehr früh, also keine Garantie für Richtigkeit ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 11:41 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mo 07 Apr, 2008 16:56
Beiträge: 26
Wohnort: Paraguay
Geschlecht: Weiblich
LoGD: Source
Skype: CharlesjawAV
Also ich habe noch

$config = unserialize($session['user']['donationconfig']);
$session['user']['donationconfig']=serialize($config);


beim Logout eingefügt, damit ein User auch das behält was er sich mit Dp gekauft hat(Gorlinda usw.)

_________________
this


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 15:30 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Franzi bei aller liebe, das wird an den Stellen an denen es wichtig ist schon gemacht, das braucht man beim logout gaaanz sicher nicht noch einmal, in der jägerhütte wird es gemacht, und der user wird mit jedem pagehit gespeichert also brauchst du keine verlust ängste zu haben


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 15:42 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
Zitat:
$config = unserialize($session['user']['donationconfig']);
$session['user']['donationconfig']=serialize($config);


Ist das nicht n bisschen sinnfrei?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 16:00 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Welv hat geschrieben:
Zitat:
$config = unserialize($session['user']['donationconfig']);
$session['user']['donationconfig']=serialize($config);


Ist das nicht n bisschen sinnfrei?

Natürlich. Kann man sogar "kürzen"
$this->bbcode_second_pass_code('', '$session['user']['donationconfig'] = serialize(unserialize($session['user']['donationconfig']));')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 16:07 
Offline
Eingeweihter
Eingeweihter

Registriert: Mo 31 Aug, 2009 09:26
Beiträge: 67
Geschlecht: Männlich
LoGD: http://nydoria.at
Danke für die Hilfe, wie gesagt ich hatte mich an den vorhandenen Logouts orientiert, und nachdem $session['user']['loggedin']=0; und $session['user']['location']=9; da vorkamen hab ichs erstmal reingegeben.
Dass man hier: "db_query($sql) or die(sql_error($sql));" den "or die" Teil weglassen kann ist auch gut zu wissen, da das in allen Logout Funktionen von Logd vorhanden ist, und wenn man das Wissen über die exakte Funktion noch nicht hat, dann glaubt man man braucht das unbedingt ;-)
Also jetzt bleibt mir folgendes über, das müsste dann ausreichen hoffe ich$this->bbcode_second_pass_code('', 'if ($_GET['whateverop'] == "anotherlogout"){
if $session['user']['loggedin']{
debuglog("hat sich irgendwo ausgeloggt");
$sql="UPDATE accounts SET loggedin=0,location=9 WHERE acctid = ".$session['user']['acctid'];
db_query($sql)
}
$session=array();
redirect("index.php");
}')sieht jedenfalls schon schlanker aus, ich bin froh über alles was ich dazulerne ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 16:18 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
In LoGD gibts viel Überflüssiges und da es auch viele gibt die mit LoGD php lernen, lernen sie auch die Fehler, weshalb sowas wie "or die();" und nicht gesetzte ' in Arrayschlüssel noch immer vorkommt.


Da db_query() eigentlich nur Sinn macht wenn ein anderer User bearbeitet wird ( btw, bei dir fehlt da ein ; am Schluss der Funktion) und saveuser() ev das eben geänderte mit der aktuellen $session (die loggedin noch auf true hat) überschreibt, würde ich bei $session bleiben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 16:25 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 12 Mai, 2008 21:51
Beiträge: 137
Geschlecht: Weiblich
also bei mir hat immer folgendes gereicht..
*hat das, wenn sie sich recht entsinnt, einfach aus der login.php rausgenommen und angepasst*
$this->bbcode_second_pass_code('', '
elseif ($_GET['op']=="logout"){
$session['user']['loggedin']=0;
$session['user']['location']=6;
saveuser();
$session=array(); //Sinvoll? Keine Ahnung, weiß nicht mehr woher das kam
redirect("index.php");
}
')
Ob es ganz korrekt ist wie es da steht ist nicht garantiert.
Ist in jedem Fall sehr Platzsparend und Beschwerden gab es auch nie damit ôO
War bie mir auf den Stadtplätzen so hinverlinkt (also nicht village, hatte damals mehrer Städte)

nicht vergessen!! die Location auch in der login.php definieren!

mfg Dat Mine


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logout Function
BeitragVerfasst: Mo 04 Jan, 2010 16:49 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
@Deus X Machina: Das ist wichtig die beiden Stellen.
$this->bbcode_second_pass_code('', '$session['user']['loggedin']=0;
$session['user']['location']=9;')
Die erste Zeile sorgt dafür, dass man wirklich ausgeloggt ist.
Die zweite sagt, wo du dich ausgeloggt hast - die Login schickt dich dann an die richtigen Orte. Nicht-Setzen bedeutet 0 - und das bedeutet Felder.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 35 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum