blueimp AjaxChat Onlineliste


Auf Anregung von Sumale.nin habe ich hier ein Miniscript geschrieben, womit man die aktuell angemeldeten Chatter sehen und per Ajax-Request in ein Div laden kann.

Grundsätzlich wurde das ganze dann doch sehr simpel ;-)

Benötigt wird jQuery und mein kleines Javascript:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
<script src="onlineuser.js" type="text/javascript"></script>

Diese beiden Scripte müssen auf jedenfall im entsprechenden HTML Header vorhanden sein.

Vor dem hochladen, kann in der onlineuser.js noch die UpdateRate und die ID des Divs konfiguriert werden. Per default heisst die Div-ID “onlineuser” und wird alle 10 Sekunden aktualisiert:

var targetDiv = "onlineuser";
var updateRate = 10000;

Falls nun das PHP Script nicht auf einer Ebene mit der HTML Datei liegt, muss der Pfad noch entsprechend angepasst werden:

$("#"+targetDiv).load("path/to/onlineuser.php");

In der onlineuser.php muss, wie auch schon beim Adminpanel, die Datenbankverbindung eingertagen werden und optional noch CSS Klassen mitgegeben werden:

$cssClass = "styleMe orNot";
 
$db = new mysqli( 'localhost', 'db-user-name', 'db-pw', 'db-name' );

Grundsätzlich wars das schon!

Ein ZIP mit den beiden benötigten Dateien und einem Beispiel-HTML findet man hier

Ich hoffe es funktioniert bei allen, im Notfall kann man sich aber gerne hier melden :-)

  1. #1 von Sumale.nin am 10. Mai 2011 - 16:48

    Hallo dreiling,

    dass ging ja fix und das läuft wirklich super :D . Vielen vielen Dank dafür.

    Darf ich dich noch ein letztes mal um etwas bitten :D
    Ich nutze zwei Systeme, ich habe eine einheitliche Registrierung erstellt. Somit wird der User bei der Registrierung direkt auch für das Forum registriert.

    Ich würde das gerne auch so erweitern, dass die User dann auch im Chat registriert sind, aber das muss ja in einer Datei geschrieben werden und ich denke das du mir das wohl eher helfen kannst.

    So sieht das für die Registrierung aus, damit die User im WBB geschrieben werden:

    $sql = “INSERT INTO wcf1_user
    (userID, username, password, salt, email, registrationDate)
    VALUES
    (‘”.$user_id.”‘, ‘”.$user_name.”‘, ‘”.$user_password_wbb.”‘, ‘”.$salt.”‘, ‘”.$user_email.”‘, ‘”.time().”‘)”;
    $result = $site_db->query($sql);

    $user_id = Ist die ID des Users
    $user_name = Klar der Username
    $user_password_wbb = Das Passwort, allerdings ist das gehasht und ich denke das man die reine Ausgabe des Passwortes braucht, darum nicht $user_password_wbb nutzen sondern $user_password

    Ich wäre dir so dankbar

  2. #2 von dreiling am 10. Mai 2011 - 20:25

    Hiho,

    im Grunde kannst du das auch selber machen, denn es ist schon alles vorhanden was du brauchst :)

    Im Adminpanel benutze ich eine zusätzliche Datenbanktabelle für den Chat und schreibe dann alle Benutzer aus der Tabelle in die Datei die vom Chat für die Authentifizierung benötigt wird.

    Wenn du das Adminpanel nicht benutzen möchtest, dann nimmst du am einfachsten nur das SQL-Statement, legst die Tabelle an und kannst bei der Registrierung deine Benutzer in der Tabelle anlegen.

    Um die Benutzer in die Datei zu schreiben, kopierst du dir die writeFile() Methode in der admin.php und führst die am ende der Registrierung aus.

    Je nach Ordnerstruktur, musst du noch den Pfad zur users.php ändern.

    Drück dir die Daumen dass alles klappt!

(wird nicht veröffentlicht)