Seite 1 von 1

Mehrfaches Einloggen verbieten?

Verfasst: 02.07.2007 21:59
von Giga-Tronic
Hi,

ich würde gern wissen ob man nicht irgendwie ausstellen kann, dass man sich mit einem Account an zwei PCs einloggt...

Also so ähnlich wie bei ICQ =)


Geht das?


Gruß

Andi

Verfasst: 02.07.2007 22:49
von cYbercOsmOnauT
Hallo Ex-Nachbar,

möglich ist alles. Was soll denn passieren, wenn der Zweite sich einloggt? Soll der Erste dann fliegen, oder soll der Zweite sich nicht einloggen können?

Grüße,
Tekin (Ex-Lüdenscheider vonner Kluse)

Re: Mehrfaches Einloggen verbieten?

Verfasst: 03.07.2007 10:13
von SteveHH
Giga-Tronic hat geschrieben:Hi,

ich würde gern wissen ob man nicht irgendwie ausstellen kann, dass man sich mit einem Account an zwei PCs einloggt...

Also so ähnlich wie bei ICQ =)


Geht das?


Gruß

Andi
Wie meinst Du das denn genau ?

Greetz,

Steve

P.S.: Ich habe kein ICQ, also weiss ich auch nicht, was da möglich ist

Verfasst: 03.07.2007 18:20
von Giga-Tronic
cYbercOsmOnauT hat geschrieben:Hallo Ex-Nachbar,

möglich ist alles. Was soll denn passieren, wenn der Zweite sich einloggt? Soll der Erste dann fliegen, oder soll der Zweite sich nicht einloggen können?

Grüße,
Tekin (Ex-Lüdenscheider vonner Kluse)

Hooray! Ich wohn auch da in der Nähe^^ Werdohlerstr. 203
Grüß dich


Ja genau das meine ich. Der Erste soll fliegen wenn der zweite sich einloggt.

Wäre echt cool wenn jemand mal so nen Snippet bauen könnte. Oder gibbet sowas schon?


Gruß

Andi

Verfasst: 04.07.2007 00:47
von cYbercOsmOnauT
Nun, wenn Nummer 1 keinerlei Meldung bekommen, sondern nur seine Session verlieren soll, ist das kein großes Ding.

Suche in der includes/sessions.php nach

Code: Alles auswählen

// Add the session_key to the userdata array if it is set
darüber füge ein:

Code: Alles auswählen

$sql = "DELETE FROM " . SESSIONS_TABLE . " WHERE session_user_id = " . $userdata['user_id'] . " AND session_id <> '" . $userdata['session_id'] . "'";
if (!($result = $db->sql_query($sql)))
{
  message_die('Konnte keine fremden Sessiondaten löschen', '', __LINE__, __FILE__, $sql);
}
if ($db->sql_affectedrows($result))
{
  // Es wurde mindestens eine fremde Session gelöscht
  $sql = "DELETE FROM " . SESSIONS_KEYS_TABLE . " WHERE user_id = " . $userdata['user_id'];
  if (!$db->sql_query($sql))
  {
    message_die('Konnte Autologinkey nicht löschen', '', __LINE__, __FILE__, $sql);
  }
}
Das Snippet macht nichts anderes als alle Sessions löschen, die sich auf einen User beziehen, jedoch eine andere SessionId aufweisen. Sollte dies mindestens 1 Zeile in der Sessions Tabelle gelöscht haben, wird zudem das Autologinkey gelöscht. Ansonsten wäre ein "Login-War", wo sich ständig die neu generierten Autologin-Sessions gegenseitig löschen.

Merke 1: Der Code wurde nicht von mir getestet.

Merke 2: Falls Du Modifikationen wie "Wer war online" verwendest, könnte es passieren, dass die Zahlen dort geringere Werte anzeigen, denn diese Mods arbeiten mit den Sessions des Tages.

Grüße aus der nunmehr 280km Ferne,
Tekin

P.S.: Ich hab damals am Tinsberg gewohnt. ;)