-
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?
-
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.
-
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.
-
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.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.
-
Einfach per
die Anzahl der online User ermitteln und entsprechend reagieren...PHP-Code:<?php
$sql = "SELECT COUNT(*) FROM online_user";
?>
-
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.
-
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.
-
03.08.09 12:13 #8
- 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 GleicheSollte 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.
-
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.
-
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.
-
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.
Kann mir vielleicht jemand sagen wo der Fehler liegt und wie ich die richtige Anzahl der sich gerade im online Zustand befindenden User herausfinde?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;
-
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
-
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.
-
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
CookieBusterThere 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.
-
Hi,
@ as333: Für die Nutzung von id()-Schleifen: *klick mich* ein kleiner tut - sollte dir helfen.
Gruß, DomiWer, wenn nicht ich? Wann, wenn nicht jetzt?
Ähnliche Themen
-
Jomla - User für internen Bereich anlegen
Von Kalito im Forum Content Management Systeme (CMS)Antworten: 0Letzter Beitrag: 22.12.10, 13:24 -
Problem bei Eigenem Login Bereich zu Typo3 Login bereich
Von Gunah im Forum PHPAntworten: 2Letzter Beitrag: 08.10.07, 11:38 -
User Anzahl ausgabe
Von surffix im Forum Relationale DatenbanksystemeAntworten: 16Letzter Beitrag: 13.07.02, 15:22 -
zeitlich begrenzter Login
Von asmodis! im Forum PHPAntworten: 1Letzter Beitrag: 30.03.02, 21:17



3Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren