Beitrag von Oliver ;-) (500 Beiträge) am Dienstag, 19.August.2008, 15:19.
Ausgabe eingeloggter User
Hallo,
kann man bei der V3 von baseportal ausgeben lassen, welche und seit wann User eingeloggt sind? Oder ist das nur über eine gesonderte Datenbank möglich?
Grüße
Oliver ;-)
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 20.August.2008, 18:42.
Re: Ausgabe eingeloggter User
Die User-DB ist eine ganz normale bp-DB, deshalb kannst Du dort einfach ein Feld "Datum" dazufügen...
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Mittwoch, 20.August.2008, 19:45.
Re: Re: Ausgabe eingeloggter User
Hallo Christoph,
dann muss ich aber immer wieder die DB "anfassen". Das bläht die DBs so auf.
Ich hatte gehofft, dass diese Information bp-intern irgendwo gespeichert ist...
Sehe ich das richtig, dass es in der User-DB die Felder "Name" und "Passwort" mit genau der Bezeichnung geben muss?
Im Loginformular werden aber die Variablen "uid" und "upw" weiter gegeben. Intern werden die dann mit "Name" und "Passwort" abgeglichen, oder?
Wie wird denn aus "uid" die Variable "$_user"?
Grüße
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 20.August.2008, 21:56.
Re: Re: Re: Ausgabe eingeloggter User
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Mittwoch, 20.August.2008, 22:01.
Re: Re: Re: Re: Ausgabe eingeloggter User
danke für die Infos.
Aber durch den Zeitstempel habe ich doch nur den Zeitpunkt des Logins. Wie erfahre ich denn, wann der User wieder ausgeloggt ist bzw. wurde?
weitere Frage:
Kann man die Länge der Gültigkeit einer Sitzung definieren?
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.August.2008, 12:33.
Re: Re: Re: Re: Re: Ausgabe eingeloggter User
den Zeitstempel modifizierst du natürlich mit jeder aktion, bzw dem aufrufen der seite.
die länge der sizung ist hart auf 30 min eingestellt
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.August.2008, 12:35.
Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
achso, kürzer kannst du sie machen, indem du wieder den abgelegten zeitstempel vergleichst. Wenn länger als zB 15 min, schickst du das script zum erneutem login.
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Donnerstag, 21.August.2008, 13:32.
Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
hmmm... dann muss ich mit jedem Seitenaufruf die DB "anfassen". Das führt bei bp ja immer so zum "Aufblähen" der Datenbank. Oder ist das bei der Version 3 nicht mehr so?
Kann man die Sitzung nicht verlängern? Bei meinen Usern ist 30 Minuten recht kurz...
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.August.2008, 14:13.
Re: Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
wie, deine user machen 30 min lang nicht eine Aktion auf der Seite? sie beginnt doch jedesmal neu zu laufen.
Aufblähen? hast du Angst um geschwindigkeit oder speicher?
geschwindigkeit bleibt gleich, speicher kannst du mit nem gelegtlichen reorg wieder freigeben.
Außerdem gibts ab v3 die möglichkeit, templates zu schreiben. dann könntest du dort per text den user + zeitstempel hinterlegen. damit fasst du keine db an, es wird nix aufgebläht. Das auslesen und auswerten ist halt nicht so komfortabel wie bei der db.
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Donnerstag, 21.August.2008, 14:40.
Re: Re: Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
< wie, deine user machen 30 min lang nicht eine Aktion auf der Seite? sie beginnt doch jedesmal neu zu laufen. >
Meine User brauchen schon mal einige Zeit, um Beiträge zu schreiben (teils ellenlang... ;-) ). Wäre blöd, wenn die dann ausgeloggt werden. Insofern würde ich das gerne auf 60 Minuten erhöhen...
< Aufblähen? hast du Angst um geschwindigkeit oder speicher? >
Also derzeit führe ich bei einigen meiner DBs ein- bis zwei Mal die Woche eine Reorg durch. Ich habe z.B. eine DB, die Zugriffe auf meine 55 (Haupt-)Templates zählt. Diese DB bläht sich innerhalb einer Woche von 4 KB auf fast 10.000 KB auf.
<Außerdem gibts ab v3 die möglichkeit, templates zu schreiben. dann könntest du dort per text den user + zeitstempel hinterlegen. damit fasst du keine db an, es wird nix aufgebläht. Das auslesen und auswerten ist halt nicht so komfortabel wie bei der db. >
gibt es da eine Doku?
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.August.2008, 14:55.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Donnerstag, 21.August.2008, 22:51.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 22.August.2008, 13:03.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
Seite schreiben:
nach dem login:
put "$_user|$timestamp", "seite.htx";
auslesen wer online ist:
@inhalt=get "seite.htx";
foreach $line(@inhalt){
($user|$timestamp)=split/\|/,$line;
if($timestamp+$zeitspanne>jetztzeit){ #nur mal symbolisch geschrieben
$online{$user}=1;
}
}
onlineuser ausgeben:
foreach $onlineuser(keys %online){
out "$onlineuser<br>";
}
# eigenen timestamp erneuern und löschen der offlines (durch sessionüberschreitung):
mod sub {
($user|$timestamp)=split/\|/,$_;
# überfällige user löschen
if($timestamp+$zeitspanne<jetztzeit){
$_="";
}
# eigenen timestamp aktualisieren
if($user eq $_user){
$_="$_user|$newtimestamp";
}
}, "zeilen.htx", "line";
untested ;)
vielleicht ist es geschickt, wenn du
$formcode=&login;
machst und dann $formcode mit regex bearbeitest und nach deinen wünschen anpasst. Dann hast du die Funktion weiterhin, nach neulogin die daten weiterzugeben. eigentlich mußt du nur die hiddenfelder extrahieren und in deinen Code mit eingeben. sollte nicht so schwer sein.
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 22.August.2008, 13:05.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User
ich muß mal sagen, je länger man sich mit V3 beschäftigt um so mehr fällt einem zu den neuen Funktionen ein und um so beeindruckender wird die V3.
Ich hoffe, das Gefühl hatten auch schon andere ;)
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 22.August.2008, 13:43.
Re: .... Re: Ausgabe eingeloggter User
ich habe V3 schon immer als großen Sprung empfunden. Nur leider konnte ich es bisher noch nicht nutzen. Ich freue mich schon auf den neuen Server und warte bzw. hoffe gespannt darauf, dass er bald fertig eingerichtet ist.
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 22.August.2008, 13:35.
Re: ..... Re: Ausgabe eingeloggter User
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 22.August.2008, 14:24.
Re: Re: ..... Re: Ausgabe eingeloggter User
1. ist $timestamp eine interne bp-Variable oder ist das ein von mir generierte Datums-/Zeitstempel?
von dir generiert. - es kann mit epochensekunden (Sekunden seit irgendwann 1970) oder mit dem Datum von bp gearbeitet werden
2. wäre $zeitspanne hier sinnvollerweise "30"?
bei epochensekunden 1800 für 30 min - wenn man mit datum rechnet, 30
3. woraus entsteht $newtimestamp?
mußt du generieren
4. müsste jetztzeit nicht $jetztzeit heißen
deshalb schrieb ich nur symbolisch - aber am einfachsten ist wohl mit epochensekunden zu rechnen
guck mal beim zusatz time
http://doku.baseportal.de/61.html
also ich würds so machen:
timestamp und newtimestamp als datum("jetzt","intern") ablegen
beim vergleich dann auf sekunden umschalten - zeitspanne=1800:
if(datum($timestamp,"time")+$zeitspanne>datum("jetzt","time))
bzw
if(datum($timestamp,"time")+$zeitspanne<datum("jetzt","time))
der timestamp bei put hat übr. nix mit dem unten in get und mod zu tun, der wird dort durch das split befüllt. vielleicht ist es für dich übersichtlicher wenn du bei put eine andere var verwendest (eigentlich brauchst du gar keine an der stelle -
put "$_user|".datum("jetzt","intern"), "seite.htx";
bei mod dann:
$_="$_user|".datum("jetzt","intern"); # statt newtimestamp
)
beim regex fürs login können wir dir sicher auch helfen ;) - aber eins nach dem anderen
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Mittwoch, 20.August.2008, 21:40.
Re: Re: Ausgabe eingeloggter User
noch eine Frage:
wie stelle ich denn fest, dass die User wieder ausgeloggt sind bzw. deren Sitzung nicht mehr gültig ist?
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 20.August.2008, 21:52.
Re: Re: Re: Ausgabe eingeloggter User
das stellt bp fest und liefert im die definierte seite oder das form zum login.
Antworten