Letzte Login per Befehl anzeigen ...

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
Knuddelmonster
Beiträge: 69
Registriert: 11.02.2010, 18:10
Wohnort: Österreich
Kontaktdaten:

Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Knuddelmonster » 20.02.2010, 13:10

Hallo ...
Gibt es eine möglichkeite das man aus den "Admin-Menü" von den einzelnen angemeldeten Usern den letzten Login per Chat-Befehl im Chat-Stream ausgeben kann ?
Um es zu verdeutlichen was ich genau will mal hier ein Beispiel !

Registrierter User "XY"
Im "Admin-Menü" steht dort zb. bei "Zuletzt im Chat:" -> 19.02.2010 - 23:17 h
Genau das möchte ich gerne Auslesen und per Befehl im Chat ausgeben, wie das nun genau aussehen könnte möchte ich nun anführen ...

Eingabe zb. /sehn XY
Ausgabe im Chat-Stream wenn User XY nicht in der Online-Liste ist
Ausgabe -> Hey, ich habe den User XY das letzte mal am 19.02.2010 um 23:17 Uhr gesehn !
Ausgabe im Chat-Stream wenn User XY in der Online-Liste vorhanden ist !
Ausgabe -> Hey, der User XY ist gerade im Chat - brauchst du vielleicht eine Brille ?

Den Befehl sollten alle "angemeldeten User" nutzen können !

Hab in den letzten Monaten etliche Scripte durchsucht, aber ein solches ist mir nicht unter gekommen, genau so findet man nichts über die Suchfunktion, wäre schön wenn ich Antwort bekommen könnte ...

Es grüßt euch wie immer - das Knuddelmonster

PS: Das Script sollte nur für "angemeldete User" sein - also wenn man zb. einen Gast "Nick" eingibt, könnte eine extra Meldung erscheinen das dieser "Nick" nicht angemeldet ist ...

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Linus » 21.02.2010, 22:43

Mit der API ist das möglich, ich habe also prompt ein Script dafür erstellt :) Ohne die API geht es nicht!

Also:

Folgendes Script muss in die Ankündigung (erste und dritte):

Code: Alles auswählen

<script language="JavaScript" type="text/javascript">function lastseen(user){document.write("<script src='http:\/\/chat.wkstats.de\/chatscripts\/lastseen.php?user="+user+"' type='text\/javascript' language='JavaScript'><\/script>");}</script>
Die angegebene URL musst du anpassen auf deine URL der lastseen-Datei. In der URL muss zunächst jeder / durch \/ (Backslash Slash) ersetzt werden (bzw. muss nicht, ist aber sicherer ;)). Die Datei muss folgenden Code enthalten und mit der Endung .php gespeichert und auf deinen Webspace hochgeladen werden:

Code: Alles auswählen

<?php
require("api.php");
$chat=new Webkicks("chatname",1,"Dein Adminnick","Dein Passwort");
$user=$_GET['user'];
$online=$chat->getOnlineUsers();
if (in_array($user,$online)){
	$ausgabe="ist doch online!";
}else{
	$users=$chat->getAllUsers();
	if (!in_array($user,$users)){
		$ausgabe="ist nicht angemeldet!";
	}else{
		$lastseen=$chat->getDetails($user);
		$ausgabe="war zuletzt online: {$lastseen['lastlogin']}";
	}
}
echo "document.write('$ausgabe');";
?>
Hier musst du nur die ersten beiden Zeilen anpassen (genaue Anleitung ist bei der API zu finden, siehe Link) und evtl. die Zeilen, die mit $ausgabe beginnen :)

Und zu guter letzt der Chatbefehl:

Code: Alles auswählen

%USER% <script language="JavaScript" type="text/javascript">lastseen(strip_tags('%USER%'));</script>
Hieße der Chatbefehl nun /lastseen, würde man das Script folgendermaßen aufrufen: /lastseen USERNAME, wobei Groß/Kleinschreibung beim Usernamen ignoriert wird, der Chat ersetzt das ja automatisch.

Erfordert:
- API-Kompatibilität (s. verlinkten Thread)
- Grundscriptsammlung

Viel Spaß damit ;)

Knuddelmonster
Beiträge: 69
Registriert: 11.02.2010, 18:10
Wohnort: Österreich
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Knuddelmonster » 22.02.2010, 18:44

Hi und hallo hier ...

@Linus
Ich geb mal ein grosses Danke, super Hilfe bei der man auch lernt !!! (sofern man lernen will :lol:)

@all
... nach dem ich nun auch PHP kennen gelernt habe und man mir geholfen hat doch auch einen Online-Status zu schnitzen hab ich noch eine Frage !

Ist es möglich bei der ganzen Sache das Datum und die Zeit zu trennen ?
Beispiel:
jetzt = User XY war zuletzt online: 22.02.2010 - 18:30 h
soll = User XY war zuletzt online am 22.02.2010 um 18:30 h

wäre schön wenn man das Teilen könnte um eben Wörter dort einzufügen ...

Danke euer Knuddelmonster ...

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Linus » 22.02.2010, 19:04

Code: Alles auswählen

<?
require("api.php");
$chat=new Webkicks("nexus",2,"Linus","PASSWORT");
$user=$_GET['user'];
$online=$chat->getOnlineUsers();
if (in_array($user,$online)){
	$ausgabe="ist doch online!";
}else{
	$users=$chat->getAllUsers();
	if (!in_array($user,$users)){
		$ausgabe="ist nicht angemeldet!";
	}else{
		$lastseen=$chat->getDetails($user);
		$daten=explode(" - ",$lastseen['lastlogin']);
		$datum=$daten[0];
		$zeit=preg_replace("/ h/","",$daten[1]);
               //$zeit=$daten[1];
		$ausgabe="war zuletzt online am $datum um $zeit!";
	}
}
echo "document.write('$ausgabe');";
?>
Das in die lastseen.php :) Erzeugt eine Ausgabe wie: dennis war zuletzt online am 22.02.2010 um 17:17!

Um das h wieder hinzumachen: In der Zeile mit dem // am Anfang die // entfernen und in der Zeile direkt darüber an den Anfang setzen :)

Knuddelmonster
Beiträge: 69
Registriert: 11.02.2010, 18:10
Wohnort: Österreich
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Knuddelmonster » 22.02.2010, 22:14

hallo heute noch einmal ...

soweit läuft alles gut, echt super arbeit ...

aber eines würde mich dennoch interesieren - kann man im ausgabetext auch smilies aus der replacer-liste einfügen ?
und wenn ja, wie ? ich hab einiges versucht und bin leider gescheitert ...

danke für antwort -> euer Knuddelmonster

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Linus » 22.02.2010, 22:28

Da müsstest du den Smiliequelltext direkt kopieren...

Um z.b. den Replacer :lache auszugeben:
<span onclick="javascript: repClick('lache')" style="cursor: pointer;"><img src="/CID/replacer/lache.gif" alt=":lache"></span>
Rot und lila markiertes musst du anpassen ;)
Da es da bei den Anführungszeichen u.U. etwas problematisch werden kann:
$ausgabe="war zuletzt online am $datum um $zeit <span onclick=\"javascript: repClick(\'lache\')\" style=\"cursor: pointer;\"><img src=\"/CID/replacer/lache.gif\" alt=\":lache\"></span>";
Du musst wirklich ALLE " und ' mit einem \ (Backslash) maskieren, sonst funktioniert es nicht :)

masterronnow
Beiträge: 182
Registriert: 18.04.2006, 18:33
Wohnort: Berlin

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von masterronnow » 26.02.2010, 20:34

Hallo,

derzeit ist das ja noch für alle sichtbar und der eigene Name wird noch angezeigt?

Ist doch auch ohne möglich?

Also das der eigene Name nicht mehr sichbar ist und das nur noch der jenige der den Befehl ausführt das sieht?

Viele Grüße
masterronnow

masterronnow
Beiträge: 182
Registriert: 18.04.2006, 18:33
Wohnort: Berlin

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von masterronnow » 03.03.2010, 22:03

*push

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von 1. FC Keller » 05.03.2010, 09:42

sollte gehn wenn du als Chatbefehl das verwendest:

Code: Alles auswählen

%USER% <script language="JavaScript" type="text/javascript">if(strip_tags('%me%')==myNick){lastseen(strip_tags('%USER%')); }else{tbls=document.getElementsByTagName('table'); tbls[tbls.length-1].style.display='none';}</script>

hef266
Beiträge: 21
Registriert: 09.02.2010, 19:47

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von hef266 » 05.03.2010, 15:11

Hi und ein Schrei nach Hilfe an die tollen Programmierer,

ich habe alles nach Anleitung gemacht, aber es will einfach nicht funktionieren.
Nach aufrufen des Befehls mit /lastchat user (habe lastseen als Befehl lastchat benannt) erscheint im stream nur die Anzeige meinalias user ohne etwas zusätzlich.

Kann mir jemand helfen?

LG hef266


Edit: Fehler korrigiert.
Zuletzt geändert von hef266 am 05.03.2010, 15:13, insgesamt 1-mal geändert.

masterronnow
Beiträge: 182
Registriert: 18.04.2006, 18:33
Wohnort: Berlin

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von masterronnow » 05.03.2010, 15:12

Hallo,

habe folgendes Script jetzt in der Teamankündigung: (Da es nur Testweise eingebaut wird)
Script:Zeigen
<script language="JavaScript" type="text/javascript">function lastseen(user){document.write("<script src='http:\/\/ultimatic-chat.de\/plugins\/scripte\/lastseen.php?user="+user+"' type='text\/javascript' language='JavaScript'><\/script>");}</script>
Doch es funktioniert nicht. Es wird lediglich folgendes ausgegeben: masterronnow Panda

Kann mir da jemand weiterhelfen?

Und außerdem:

Dankeschön Keller, aber man sieht immer noch seinen eigenen Namen, ist das vielleicht noch zu entfernen!?

Das Script ist als Befehl drin:
Script:Zeigen
%USER% <script language="JavaScript" type="text/javascript">if(strip_tags('%me%')==myNick){lastseen(strip_tags('%USER%')); }else{tbls=document.getElementsByTagName('table'); tbls[tbls.length-1].style.display='none';}</script>
Viele Grüße
masterronnow

masterronnow
Beiträge: 182
Registriert: 18.04.2006, 18:33
Wohnort: Berlin

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von masterronnow » 14.03.2010, 18:50

*push

:roll:

hef266
Beiträge: 21
Registriert: 09.02.2010, 19:47

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von hef266 » 19.03.2010, 12:04

Hi,
kann denn wirklich niemand helfen?
Mein Problem ist das selbe wie das von mastronnow.
API und lastsen.php liegen auf lima-city. Bedingungen sollten also erfüllt sein.
Eintrage in der php was name, server, pw angeht ist auch gecheckt, aber es geht einfach nicht.
Gruß hef266

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von 1. FC Keller » 19.03.2010, 13:07

@masternorrow: wenn man dein script aufruft: http://ultimatic-chat.de/plugins/script ... user=panda
Dann sieht man diese Fehlermeldung:

Code: Alles auswählen

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/web123094/html/plugins/scripte/api.php on line 560
Sprich:
1. dein Hoster erlaubt offensichtlich keine file-funktionen auf fremde Server per http.
2. Durch die Fehlermeldung in der Ausgabe bricht auch das JS-Script im Chat ab, wodurch dann höchst wahrscheinlich auch die Zeile nicht ausgeblendet wird.

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Letzte Login per Befehl anzeigen ...

Ungelesener Beitrag von Maxs » 19.03.2010, 13:27

Ja, Lima-City erlaubt zurzeit aufgrund eines dDos-Angriffes die API nicht:
Zitat aus dem Lima-City-Forum:
Änderungen und Einschränkungen, "Warning: ... has been disabled for security reasons..."
Um die nun erhöhte Last durch den weggefallenen Server zu vermindern und die Erreichbarkeit der Webspaces sicherzustellen, mussten wir leider vorübergehend einige Funktionen abschalten, dies sind z.B. fsockopen() und cURL. Details dazu findest in der phpinfo().

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 42 Gäste