tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
29
ZUGRIFFE
1338
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    Hi,

    ich habe ein Login-Script mit Session und einer Anbindung einer MySQL Datenbank programmiert.
    Die User können sich neu registrieren und anschließend nach Aktivierung durch einen Admin können sie sozusagen den Login geschützten Bereich betreten.
    Jetzt soll es aber so sein das sich nur maximal 3 User gleichzeitig einloggen dürfen und wenn dann ein weiterer User versucht sich einzuloggen soll diesem angezeigt werden das User bereits eingeloggt sind und er es später nochmals versuchen soll.
    Die eingeloggten User sollen dann angezeigt bekommen das sich ein weiterer User einloggen möchte und sie in zum Beispiel 10 Minuten automatisch ausgeloggt werden damit sich der weitere User einloggen kann.

    Kann mir hierbei einer helfen bzw. sagen wie man sowas am besten realisiert?
    Mit PHP und MySQL kenn ich mich relativ gut aus.

    Oder weiß vielleicht jemand ob es zB mit Perl, Java oder ähnlichem leichter geht?
     

  2. #2
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Denkanstoß.

    Speicher in einer MySQL-Tabelle wer seit wann online ist. Da kannst du ja dann direkt prüfen wie viele Online sind und entsprechend der Onlinezeit reagieren.

    warum auch immer man nur 3 User online haben will....
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  3. #3
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    Hi CookieBuster,

    ich lasse bei jedem login den unix timestamp, time(), mit eintragen.
    das funktioniert schon.
    nur dann können sich immer noch x-beliebige user einloggen.

    die 3 user war nur ein beispiel, ich möchte nur das sich nicht mehr als eine vordefinierte anzahl von usern gleichzeitig einloggen können.
    und das krieg ich nicht hin.
     

  4. #4
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Mach z.B. eine eigene Online-Tabelle. Dann kann man da direkt prüfen wer online ist. (Müssen halt immer die alten gelöscht werden, welche nicht mehr online sind)

    Das ganze ist nah verwandt mit dem Thema, "Wer ist aktuell Online" und dergleichen.
    Mehr als eine einfache If-Bedinung nach einem SQL-Statement ist das nicht.
    as333 bedankt sich. 
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  5. #5
    Duxias Duxias ist offline Mitglied Silber
    Registriert seit
    Jul 2007
    Beiträge
    83
    Einfach per
    PHP-Code:
    <?php
    $sql 
    "SELECT COUNT(*) FROM online_user";
    ?>
    die Anzahl der online User ermitteln und entsprechend reagieren...
    as333 bedankt sich. 

  6. #6
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    hi,
    super vielen dank.
    Klappt soweit.
    Jetzt muss ich es nur noch schaffen das wenn z.B. die 3 User eingeloggt sind sie eine benachrichtigung bekommen das sich ein neuer einloggen will und sie automatisch nach einer bestimmt vordefinierten zeit automatisch ausgeloggt werden.

    Denke das klappt wenn ich ein weiteres Feld in meiner SQL-Tabelle hinzufüge und das dann irgendwie mit einer if Schleife verbinde.

    Vielleicht hat ja auch noch jemand von euch eine Idee.

    Muss wirklich sagen ist ein super Forum hier.
    Und wie schnell man antworten bekommt.
    Einfach nur perfekt.
     

  7. #7
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    Hi CookieBuster,

    soll eine komplett neue Tabelle in der Datenbank angelegt werden in die alle User reingeschrieben werden die Online sind oder reicht es wenn ich ein neues Feld in die bestehende Tabelle hinzufüge die ich mit Hilfe von UPDATE aktuell halte. Sprich wenn jemand online geht das dann dort zum Beispiel eine 1 steht und wenn er offline ist eine 0 steht.
     

  8. #8
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Um zu unterscheiden wer online ist und wer nicht bzw. um die Anzahl deren zu ermitteln, reicht es aus wenn du ein zusätzliches Feld in die vorhandene Tabelle aufnimmst.

    Aber mal abgesehen davon läuft hier nicht was doppelt? Dieser Beitrag von dir ist auch noch offen und da geht es doch um das Gleiche
    ZodiacXP bedankt sich. 
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  9. #9
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    Hallo tombe,

    danke für die Info. Hab es versucht mit einem neuen Feld,
    nur leider wird bei mir nicht gezählt wieviele User online sind.
    Hab es so versucht wie Duxias es vorgeschlagen hat.

    PHP-Code:
    <?php
    $sql 
    "SELECT COUNT(*) FROM online_user";
    ?>

    Meine MySQL-Tabelle heißt user und das Feld was ich angelegt habe online_user.
    Wenn sich jetzt 2 User einloggen erscheint bei beiden die Einloggzeit jedoch wird nicht hochgezählt wieviele User online sind.

    Ja der Beitrag ist auch von mir.
    Es geht um etwas ähnliches.
    Ich wollte keine Verwirrung hervorrrufen deswegen der andere zusätzlich Beitrag.
    Bei hier dem Beitrag sollen ja eine bestimmte Anzahl von Usern sich in der Memeberarea gleichzeitig befinden dürfen bei dem anderen Beitrag soll eine richtige Warteschleife realisiert werden.
    Diese Vorhaben ist leider auch noch nicht endgültig bearbeitet, sobald es aber fertig ist markiere ich es als erledigt.
     

  10. #10
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Das liegt am MySQLBefehl.

    Select COUNT(*) zählt natürlich alles. Beschränke es auch mit WHERE auf die Richtigen Zeilen

    SELECT COUNT('online_user') WHERE online_user = 1

    oder so ähnlich.
    Geändert von CookieBuster (03.08.09 um 19:14 Uhr)
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  11. #11
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    ok habe es versucht zu verändern.
    Jetzt wird bei mir ständig Resource id#5 angezeigt wenn ich mir die Anzahl der Online User anzeigen lassen obwohl nur 2 User eingeloggt sind.

    PHP-Code:

    mysql_select_db
    ("Regloginuser"$connect);
    $anzahl="SELECT COUNT(online_user) FROM user Where online_user = 1";
    $ergebnis mysql_query($anzahl) OR die(mysql_error());
    echo 
    $gesamt
    Kann mir vielleicht jemand sagen wo der Fehler liegt und wie ich die richtige Anzahl der sich gerade im online Zustand befindenden User herausfinde?
     

  12. #12
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Hi,

    wenn alle Spalten richtig benannt sind, versuche dies, sonst musst du die Spalten-Namen noch anpassen. Auch sollte vorher im Script alles glatt gehen.

    PHP-Code:
    $sql 'SELECT COUNT(`online_user`) as `on` FROM `user` WHERE `online_user` = 1';

    if (!
    $result mysql_query($sql))
    {
        print 
    mysql_error();
    }
    else
    {
        
    $row mysql_fetch_assoc($result);
        print 
    $row['on'];


    /e:
    Und unbedingt, wenn du mehr mit PHP machen willst, Grundlagen aneignen. Tutorials gibts hier und im Netz genug.
    Geändert von Loomis (03.08.09 um 20:25 Uhr)
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  13. #13
    as333 as333 ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Beiträge
    139
    Hi Loomis,

    super vielen Dank für die Info.
    War wirklich super und hat super geklappt.

    Hast du vielleicht noch einen Tipp wie ich es hinbekomme das wie weiter oben schon beschrieben das sich nur 3 User einloggen können und das dann der 4.te User der sich versucht einzuloggen eine Meldung bekommt das bereits 3 User online sind und er sich einloggen kann wenn sich einer ausloggt, bzw. der erste User der sich eingeloggt hat soll nach 5 Minuten nachdem sich der 4.te User versucht hat einzuloggen automatisch ausgeloggt werden.
     

  14. #14
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Das ist nun wirklich nur eine Überlegung von Minuten wie das Funktioniert. Sollten wir das hier komplett vorkauen müssen, würde ich behaupten, dass du dir doch einmal Gedanken machen solltest ob du nicht die Sprache wechselst, nochmal nachlernst (Tuts durcharbeitest) oder ganz mit Programmieren aufhörst.
    Tut mir leid aber das ist wirklich! eine einfach Frage und wurde auch schon beantwortet!

    Schau nocheinmal zu den ersten Posts dieses Threads.

    Als Stichworte nocheinmal:
    Menge an User Online
    if-Bedingung
    aktuelle online User


    mfg
    CookieBuster
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  15. #15
    Avatar von Do_0mi
    Do_0mi Do_0mi ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    62
    Hi,

    @ as333: Für die Nutzung von id()-Schleifen: *klick mich* ein kleiner tut - sollte dir helfen.

    Gruß, Domi
     
    Wer, wenn nicht ich? Wann, wenn nicht jetzt?

Ähnliche Themen

  1. Jomla - User für internen Bereich anlegen
    Von Kalito im Forum Content Management Systeme (CMS)
    Antworten: 0
    Letzter Beitrag: 22.12.10, 13:24
  2. Antworten: 2
    Letzter Beitrag: 08.10.07, 11:38
  3. User Anzahl ausgabe
    Von surffix im Forum Relationale Datenbanksysteme
    Antworten: 16
    Letzter Beitrag: 13.07.02, 15:22
  4. zeitlich begrenzter Login
    Von asmodis! im Forum PHP
    Antworten: 1
    Letzter Beitrag: 30.03.02, 21:17

Stichworte