Re: Re: Re: Re: Re: Re: Ausgabe eingeloggter User - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    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

 Alle Einträge zum Thema: Zur Liste 
    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

      die logininfos werden alle in der %_session gespeichert, diese wiederum liegt als datei auf der platte. du kannst darüber nicht feststellen, welche sessions zu dir gehören, und welche nicht.
      Wenn du wissen willst, welche User online sind, mußt du den zeitstempel in der db hinterlegen.

      userdb- ja die felder sind vordefiniert.

      $_user - Name des angemeldeten Nutzers. Definiert leer, wenn Anmeldung fehlgeschlagen 
      
      %_user - Feldinhalte der Nutzer-Datenbank des angemeldeten Nutzers
      $_session - Session-Id des Nutzers
      %_session - Hash zum Weiterreichen von (internen) Session-Variablen

     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

      >> 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...
      


      wenn du das original &login benutzt und das form nicht selbst erstellt, wird im Falle des erneuten loginfensters alle abgesendeten Daten weitergeleitet. Wie bei baseportal selbst auch. dafür steht auch das hidden _get ;)

      ansonsten... hmm... ping of life über einen iframe mit width=0, height=0 senden, der sich alle 25 minuten selbst refresht. Problem dabei: du mußt dann anhand von parameter, die du beim iframe übergibst, entscheiden, ob es nun schon ne stunde lief oder nicht. ansonsten wurde es nie einen zwangslogout geben bei geöffneter website.


      >> gibt es da eine Doku?
      

      jo in der Doku ;)
      http://doku.baseportal.de/553.html

     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

      >> wenn du das original &login benutzt und das form nicht selbst erstellt...
      

      ist leider alles selbst erstellt

      >> jo in der Doku ;)
      

      tja, da sehe ich vor lauter wald die bäume nicht... ;-)
      Allerdings ist mir nicht klar, wie's funktioniert. Ich bräuchte da ein Beispiel. Ich kann mir noch so in etwa vorstellen, wie man für jeden User eine Zeile in die Datei schreibt. Aber wie hole ich die Daten wieder raus?

     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 ;)


      formular:
      
      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

      oh, sieht super aus...

      Ich werde es mal testen - sobald ich es richtig verstanden haben. Aber vier Fragen habe ich schon jetzt dazu:

      1. ist $timestamp eine interne bp-Variable oder ist das ein von mir generierte Datums-/Zeitstempel?
      2. wäre $zeitspanne hier sinnvollerweise "30"?
      3. woraus entsteht $newtimestamp?
      4. müsste jetztzeit nicht $jetztzeit heißen?

      zum Formular:

      >> $formcode=&login;
      >> machst und dann $formcode mit regex bearbeitest und...
      

      das sind für mich leider im Moment "böhmische Dörfer".
      Ich habe noch überhaupt keinen Schimmer, wo ich da ansetzen müsste. Aber vielleicht kommt das noch...

     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


     
 Liste der Einträge von 10200 bis 10350:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!