Login-Bereich mit begrenzter User Anzahl

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:
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?
 
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:
$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. ;)
 
Zuletzt bearbeitet:
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
CookieBuster
 
Hi Domi,

danke für die Info.
Du meintest wohl if()-Schleifen ;)
Ja damit bekommt man es hin das sich nicht mehr wie zum Beispiel 3 User einloggen können.
Nur bei mir ist das Problem das dann alle 3 User die online sind automatisch nach 15 Minuten ausgeloggt werden sollen.
Und diese User natürlich auch eine Benachrichtigung bekommen, dass sie nach einer bestimmten Zeit ausgeloggt werden.

Ich hatte an die flush() Funktion gedacht, nur hinbekommen habe ich es noch nicht.
 
Also ich kenne den Aufbau der Tabelle nicht aber wenn du jetzt den Benutzer abmelden willst der bereits am längsten online ist, dann musst du bei der Anmeldung die Uhrzeit/Anmeldezeit mitspeichern.

Beim Logout suchst du dann den Benutzer mit der frühesten Anmeldezeit:

PHP:
DELETE FROM users ORDER BY anmeldezeit ASC LIMIT 1
 
Ich würde am liebsten den User abmelden der bereits am längsten eingeloggt ist.
Dieser soll aber noch die Möglichkeit haben innerhalb eines Zeitfensters von 15 Minuten sich selbst abmelden zu können bzw. wenn er das nicht macht erst dann nach 15 Minuten automatisch ausgeloggt werden.

In meiner Tabelle werden die Einloggzeit, Ausloggzeit, und er UNIX-Timestamp bereits mitgeloggt.
Dann könnte ich ja wie du geschrieben hast den User mit dem frühesten Timestamp suchen und dann sagen die aktuelle Zeit + 15 Minuten dann wird er ausgeloggt.
Oder verstehe ich das falsch?
 
Ok danke.
Dann probiere ich es so.

Jetzt fällt mir noch ein weiteres Problem auf.
Der erste User soll ja so lange eingeloggt bleiben können solangen bis sich erst ein vierter User versucht einzuloggen und erst dann plus 15 Minuten ausgeloggt werden.
Bis jetzt habe ich es so gemacht das bei Aktivität der UNIX-Timestamp aktualisiert wird.
Nur der dürfte dann ja nicht mehr aktualisiert werden sondern es müsste dann da stehen die versuchte einlogg Zeit des vierten Users + 15 Minuten. Das würde dann ja der auslogg Zeit des ersten Users entsprechen.
Nur wie kann ich das am besten machen? Habe da an eine if()-Anweisung gedacht weiß nur nicht wie ich die umsetzen kann.
 
Zurück