Forum
Tipps
News
Menu-Icon

anzeigen welche user online sind

hi,

ich benutze das login script von http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html

und wie kann man das machen wenn der eingeloggte user auf einer seite ist das der name da steht und wenn er nicht mehr auf der seite ist das der name nicht mehr da steht...

könnt ihr mir helfen? 


Antworten zu anzeigen welche user online sind:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

entweder du speicherst die zeit wann er sich zuletzt eingeloggt hat / die letzte aktivität auf der seite gezeigt hat, oder du kombinierst das mit nem counter.

und dann frei nach:
"zeig user an deren zeit > als jetzt - x sind"


(denkfehler uhrzeittechnisch nicht ausgeschlossen)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Man könnte das auch mit dem Session-Handler verbinden. Wenn du dir einen DB-basierten Handler baust, kannst du in den Session-Aktionen gleich noch ein paar Zusatzdaten ablegen, die dir den Online-Status ermöglichen.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Man könnte das auch mit dem Session-Handler verbinden. Wenn du dir einen DB-basierten Handler baust, kannst du in den Session-Aktionen gleich noch ein paar Zusatzdaten ablegen, die dir den Online-Status ermöglichen.

greez 8)
JoSsiF

wenn man das in eine db einträgt bleibt der stautus immer auf online, die antworten waren auch nicht hilfreich,

 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
die antworten waren auch nicht hilfreich
Gern geschehen.

Zur Info: Man kann in einer Datenbank auch Update- und Löschaktionen ausführen ;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

das weiss ich aber wie lautet der befehl dafür das geprüft wird ob er noch da ist oder nicht, kannst du mir den befehl bitte sagen
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Was für ein Befehl? Und wer sollte noch da sein? Versuch mal bitte, deine Fragen so zu formulieren, dass sie auch ein Außenstehender versteht.

Eigentlich geht's aber gar nicht um einen Befehl, denn mit dem wirst du dein Programmierproblem nicht lösen. Du musst wissen, WIE du vorgehen willst. Die paar Zeilen Code sind dann nur eine Art, dieses WIE auszudrücken.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ich will doch nur diesen befehl ob gepruft wird ob der user noch auf der seite ist! >:(

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
ich will doch nur diesen befehl ob gepruft wird ob der user noch auf der seite ist! >:(

Du hast es leider nicht verstanden. ;D  Es gibt keinen Befehl, der das erledigt. Lies dir die vorhergehenden Beiträge nochmal durch, da stehen Lösungsansätze.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ICH WILL DOCH NUR DAS MIR EINER EIN TUTORIAL ODER WAS NENNT WO MIT ICH ÜBER PRÜFEN KANN OB DER USER NOCHT EINGELOGT IST; MEHR NICHT!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Groß schreiben bringt dir absolut gar nichts.

N Tutorial gibts nicht, ganz einfach.
Streng doch mal dein Köpfchen an...

Wenn dein Loginscript (ich hab mir das teil jetz nicht angeschaut) in die Datenbank ne Session speichert, dann such doch einfach nach allen Einträgen in der Datenbank wo die Session nicht NULL ist und lass sie dir auflisten. Problematik dabei ist, wer sich nicht über nem Logout link ausloggt, wird dort auch aufgelistet, egal ob noch auf der Seite aktiv oder nicht. ;)

Zweite Variante ist die, die oben auch schon genannt wurde. Ich versuch sie dir mal näher zu bringen:
Lass bei jeder Aktion die _der eingeloggte User_ macht, einen "Zeitstempel" (also in der db als DATETIME) speichern, und überprüf in deiner Onlineliste dann mithilfe von einer sql abfrage, ob der Benutzer in den letzten x Minuten aktiv war, d.h., ob in der von dir festgelegten Zeit, dieser "Zeitstempel" in der Datenbank aktualsiert wurde.

Du wirst garantiert nicht immer jemanden finden, der dir seine Codes einfach so dahinblättert, und sie dir schenkt.

Gruß
jackson

PS: wenn an den ideen da oben denkfehler sind, dürft ihr sie gern berichtigen >.<

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

oh danke, das wahr ja so hilfreich,hahaha!

ganz im gegenteil! >:(>:(>:(>:(>:(>:(>:(>:(>:(>:(

gibt mir doch die informationen die ich brauche!

 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Mit dem Ton wirst du hier keine Hilfe bekommen. Dir wird keiner Helfen wenn du jeden anmaulst, der dir helfen zu versucht.
Es waren definitiv die Antworten auf deine Fragen. Wenn sie deiner Meinung nach nicht zutreffen, solltest du deine Fragen richtig nach deinen Wünschen formulieren.
Und bevor du schreibst "Ich will einen Befehl der mir das und dies überprüft..." kann ich dir nur sagen: Gibts nicht, vergiss es.
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

sowas geht! was ist es hier bei computerhilfen die user online anzeige?

ach vergiss es! ich bin zu sauer jetzt,

ich lad mir einfach diese forum software runter und schaue mir es selbst an!

da ihr mir nicht helfen wollt

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Klar geht es, habe ich auch nicht anders gesagt. ::)
Ich habe gesagt, dass es keinen einzelnen Befehl dafür gibt, was auch der Wahrheit entspricht.
Ich wünsch dir viel Erfolg dabei, du wirst da nicht sehr viel verstehen, garantiert ich dir. ;D
Dir wurden jetzt mehrere Varianten gezeigt, wie du es machen kannst, komm selber drauf oder lass es lieber komplett sein und beschäfftige dich mit anderen Dingen, denn deine Freundlichkeit hier gegenüber anderen Menschen die dir freiwillig helfen wollen, ist unter aller sau.

Gruß,
Jackson, der sich aus diesem Threat nun ausklinkt. (;

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Klar geht es, habe ich auch nicht anders gesagt. ::)
Ich habe gesagt, dass es keinen einzelnen Befehl dafür gibt, was auch der Wahrheit entspricht.
Ich wünsch dir viel Erfolg dabei, du wirst da nicht sehr viel verstehen, garantiert ich dir. ;D
Dir wurden jetzt mehrere Varianten gezeigt, wie du es machen kannst, komm selber drauf oder lass es lieber komplett sein und beschäfftige dich mit anderen Dingen, denn deine Freundlichkeit hier gegenüber anderen Menschen die dir freiwillig helfen wollen, ist unter aller sau.

Gruß,
Jackson, der sich aus diesem Threat nun ausklinkt. (;

endschuldigung aber ich wahr nur sauer,

kann man das hier irgendwie umbauen das die ip adressen ausgelesen werden und nicht die anzahl der besucher?

<?php
<?
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name ="test"; // Database name

// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");

    $sql = "SELECT
                COUNT(*) as Anzahl
            FROM
                Online
            WHERE
                IP = '".$_SERVER['REMOTE_ADDR']."'";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
    if($row['Anzahl']) {
        // Nur Datum Updaten
        $sql = "UPDATE
                    Online
                SET
                    Datum = NOW()
                WHERE
                    IP = '".$_SERVER['REMOTE_ADDR']."'";
        mysql_query($sql) OR die(mysql_error());
    } else {
        // Neuer eintra
        $sql = "INSERT INTO Online
                    (IP, Datum)
                VALUES
                    ('".$_SERVER['REMOTE_ADDR']."', NOW())";
        mysql_query($sql) OR die(mysql_error());
    }

    // alte Datensätze löschen
    $sql = "DELETE FROM
                Online
            WHERE
                DATE_SUB(NOW(), INTERVAL 1 MINUTE) > Datum";
    mysql_query($sql) OR die(mysql_error());

    // Anzahl Ausgeben
    $sql = "SELECT
                COUNT(*) as Anzahl
            FROM
                Online";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);

    echo "<h3>".$row['Anzahl']." User</h3>";
?>
?>
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

kann man das hier irgendwie umbauen das die ip adressen ausgelesen werden und nicht die anzahl der besucher?

[...]

IP = '".$_SERVER['REMOTE_ADDR']."'";
Wirds doch.
$_SERVER['REMOTE_ADDR'] ist die Clientseitige Ip-Adresse.

Falls dies nicht die Antwort auf deine Frage ist, was meinst du mit "die anzahl der besucher?"
Die anzahl der besucher schließt sich aus der Ip-Adresse in diesem script.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

@tester_96: Du hast nicht den geringsten Grund, auf uns sauer zu sein, denn du hast (wie bereits gesagt wurde) kostenlos Hilfe erhalten. Eher müssten WIR auf DICH sauer sein, denn dein Ton geht so ganz und gar nicht. Du bist auf dem besten Wege, hier keine Hilfe mehr zu bekommen!

Wenn wir hier programmiererische Hilfestellung geben, dann ist das Hilfe zur Selbsthilfe. Wenn du damit nichts anfangen kannst, dann bestünde für dich immer noch die Möglichkeit, abseits des Forums kostenpflichtige Hilfe in Anspruch zu nehmen (3-stellige Stundensätze übrigens, nur um mal die Relationen klarzurücken!).

JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Problematik dabei ist, wer sich nicht über nem Logout link ausloggt, wird dort auch aufgelistet, egal ob noch auf der Seite aktiv oder nicht. ;)

Stimmt genau :) Deswegen macht es Sinn, den Session Save Handler neu zu schreiben und Zusatzinfos dort unterzubringen, z.B. den besagten Zeitstempel. Da schlägt man zwei Fliegen mit einer Klappe und bekommt die ganze Sache einigermaßen performant gelöst.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Stimmt genau :) Deswegen macht es Sinn, den Session Save Handler neu zu schreiben und Zusatzinfos dort unterzubringen, z.B. den besagten Zeitstempel. Da schlägt man zwei Fliegen mit einer Klappe und bekommt die ganze Sache einigermaßen performant gelöst.
Und genau da hätte ich keine Ahnung wie man es macht  ;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ich meine es so,

es wird die zahl der besucher angezeigt, und ich möchte es so haben das nicht die anzahl angezeigt wird sondern die ip adressen die sich auf der seite befinden 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Die Redundanz in diesem Thread ist zwar bedrückend, aber nochmal:

$_SERVER['REMOTE_ADDR']

Das liefert die IP des Users, der gerade zugreift.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Du willst die IP Adresse öffentlich stellen ?
Wtf ? ::)

Ich glaube eher, dass du das falsch formulierst.
Meine Vermutung wäre, du willst nicht die Anzahl haben, sondern die User die aktiv auf der Seite sind, aufgelistet haben, oder ? 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Du willst die IP Adresse öffentlich stellen ?
Wtf ? ::)

Ich glaube eher, dass du das falsch formulierst.
Meine Vermutung wäre, du willst nicht die Anzahl haben, sondern die User die aktiv auf der Seite sind, aufgelistet haben, oder ? 

das meine ich doch

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
<?php
$host
="localhost"// [url=http://www.computerhilfen.de/fachbegriffe-h-Host.html]Host[/url] name
$username="root"// Mysql username
$password=""// Mysql password
$db_name ="test"// Database name

// Connect to [url=http://www.computerhilfen.de/fachbegriffe-s-Server.html]server[/url] and select databse
mysql_connect("$host""$username""$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");

    $sql "SELECT
                COUNT(*) as Anzahl
            FROM
                Online
            WHERE
                IP = &#39;"
.$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;";
    $result mysql_query($sql) OR die(mysql_error());
    $row mysql_fetch_assoc($result);
    if($row[&#39;Anzahl&#39;]) {
        // Nur Datum Updaten
        $sql "UPDATE
                    Online
                SET
                    Datum = NOW()
                WHERE
                    IP = &#39;"
.$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;";
        mysql_query($sql) OR die(mysql_error());
    } else {
        // Neuer eintrag
        $sql "INSERT INTO Online
                    (IP, Datum, TABLE_FÜR_NAME)
                VALUES
                    (&#39;"
.$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;, NOW(), VARIABLE_MIT_NAMEN_DES_EINGELOGGTEN_USERS)";
        mysql_query($sql) OR die(mysql_error());
    }

    // alte Datensätze löschen
    $sql "DELETE FROM
                Online
            WHERE
                DATE_SUB(NOW(), INTERVAL 1 MINUTE) > Datum"
;
    mysql_query($sql) OR die(mysql_error());

    // Anzahl Ausgeben
    $sql "SELECT
                TABLE_FÜR_NAMEN_DES_USERS
            FROM
                Online"
;
    $result mysql_query($sql) OR die(mysql_error());
    while($row mysql_fetch_assoc($result)) {
        echo $row[&#39;TABLE_FÜR_NAMEN_DES_USERS&#39;];
    }
?>

So ca. dürfte das machbar sein. Bedenke das die Großgeschriebenen Sachen nicht in deiner momentanen Datenbank vorhanden sind. Update die Datenbank entsprechend. D.h. du solltest beim Eintragen von neuen Usern für die Liste den Usernamen oder die Userid (userid benötigt wieder neue abfrage des namens nachher vondaher Performenceschädigend), speichern.
Diesen Rufst du dann am Ende mit nem Array einfach ab, und lässt ihn mit while ausgeben.
Ich hab das natürlich nicht überprüft und ist jetzt frei aus meinem Kopf innerhalb 10 Minuten nachdenken gekommen. Evt. musst du das eine oder andere überarbeiten.

Gruß,
jackson  
« Letzte Änderung: 10.03.09, 14:25:17 von Jackson »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Was hastn du daran nihct verstanden o.O??

und dann frei nach:
"zeig user an deren zeit > als jetzt - x sind"

es ist jetzt 08:33 Uhr => seitenaufruf -> speichern
online liste steh ich drin, weil die alle anzeigt die vor 5 mins das letzte lebenszeichen von sich gegeben haben.

wenn ich danach nciht mehr klicke (kein speichern) bin ich nach z.b. 6 minuten logischerweise keiner mehr der vor 5 mins da war o.O

also wenn dir das sogar noch zu kompliziert war ^^
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Was hastn du daran nihct verstanden o.O??
es ist jetzt 08:33 Uhr => seitenaufruf -> speichern
online liste steh ich drin, weil die alle anzeigt die vor 5 mins das letzte lebenszeichen von sich gegeben haben.

wenn ich danach nciht mehr klicke (kein speichern) bin ich nach z.b. 6 minuten logischerweise keiner mehr der vor 5 mins da war o.O

also wenn dir das sogar noch zu kompliziert war ^^
 

ich glaube ich verstehe was du meinst ich versuche mal da was zu basteln ;D

gruß winfreund

« Eine Website online stellenScript-Fehler -> Cannot modify header »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Datenbank
Eine Datenbank (DBS), im englischen database, ist eine strukturierte Datensammlung und fungiert wie ein "digitales Archiv". Datenbanken dienen der effizienten Aufbewahrun...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...