[php] Online-Status checken (jagusch-mailer)

Ufisch

Well-known member
30 April 2006
507
41
Hi,

wie im Titel schon steht, muss ich irgendwie rausbekommen, wie der Online-Status ausgelesen wird. Will damit was machen, aber ich bekomme es nicht hin, da es nicht so einfach ist (zumindest für mich) wie z.B. beim vms.

Ich hoffe ihr könnt mir helfen.

MfG Ufisch
 
Ufisch schrieb:
Hi,

wie im Titel schon steht, muss ich irgendwie rausbekommen, wie der Online-Status ausgelesen wird. Will damit was machen, aber ich bekomme es nicht hin, da es nicht so einfach ist (zumindest für mich) wie z.B. beim vms.

Ich hoffe ihr könnt mir helfen.

MfG Ufisch

Ja; dann guck doch im Quellcode nach wie der Online-Status ausgelesen wird, oder wo ist das Problem genau ?
 
Ich hab schon alles mögliche ausprobiert. Aber es ist nicht so ganz eindeutig.
 
Du musst uns zumindest schon die DB-Struktur verraten, oder uns ein kleines Stück Code geben, damit wir dir helfen können.
Nicht jeder hat das Jagusch-Skript. ;)
 
So, sry für die späte Anwort.
Hier mal ein Ausschnitt:

mitgliederbereich.php:
PHP:
<?

session_start();
session_register("username");
session_register("kennwort");

$Titel = "mitgliederbereich";
include ("config.inc.php");
$fp = fopen ($template, "r");
$data = fread($fp, 1000000);
$data = str_replace("{Titel}" , $Titel, $data);
$array = explode ("{Inhalt}",$data);
echo $array[0];
##Inhalt der Seite ...
include("mitgliederbereich.inc.php");
##Ende des Inhaltes der Seite ...
echo $array[1];
?>

mitgliederbereich.inc.php:

PHP:
<?
If (Empty($username) or Empty($kennwort))
{
      
      session_destroy();
      include ("login.inc.php");
}
else
{
include ("config.inc.php");
mysql_connect("localhost",$mysqlusername,$mysqlkennwort);
mysql_select_db($dbname);
$res = mysql_query("select * from mitglieder where username like '$username'");
.
.
.
.
.
.
mysql_query("update mitglieder set letzterlogin = ".time()." where username like '$username'");
if ($kennwort == $dbkennwort)
{
echo " Hier ist das Benutzermenü ";
}
.
.
.
.
.
.

Ich hoffe, ihr könnt damit was anfangen.
Also das ist so, dass das im Main steht. Ich will aber das Menü ins linke menü reinmachen und zwar so, dass es nur erscheint, wenn der user eingelogt ist.

Es gibt die template.php, wo der ganze HTML-Aufbau ist und in der auch das Menü steht. In dieser Datei steht dann noch {Inhalt} , wo dann je nach link automatisch die geklickte seite angezeigt wird.

Ich hoffe, dass ist verständlich.

MfG Ufisch
 
schau doch einfach, ob die Variable $_SESSION['username'] gesetzt und nicht leer ist...
 
Sry, aber ich denke wir sind hier keine kostenlosen Ich-Muss-Nichts-Denken-Codefabrikanten (auch wenn du den Code warscheinlich trotzdem bekommen wirst) ...

Das ganze liese sich mit ein bisschen Logik und einer Mysqlabfrage lösen (Die aktiven Benutzer der letzten x Minuten?). Einfach ein ganz normales SELECT Statement mit einer Condition hintendran.

Entscheidende Stelle aus dem Code:

mysql_query("update mitglieder set letzterlogin = ".time()."");

Auch wenn ich mich damit bei dir warscheinlich unbeliebt mache.
 
So weit ich weiß gibts beim Jagusch Script keinen Onlinestatus. Es gibt nur eine Tabellenspalte wo der Zeitpunkt des letzten Logins gespeichert wird. Du müsstest eine neue Tabellenspalte in der Usertabelle anlegen und bei jedem Seitenaufruf eines Users die aktuelle Zeit darin speichern. Dann weißt du wer im Moment online ist und wann welches Mitglied zuletzt online war.

Die neue Tabellenspalte kannst du weglassen, falls dir der letzte Login ausreicht (Die Spalte wird übrigens auch geupdatet, wenn eine Paidmail bestätigt wird).
 
Ufisch schrieb:
nein. In dieser sind die meisten Seiten gespeichert.
Du brauchst auf jeden Fall ein Script, was bei jedem Request ausgeführt wird.
Jagusch konnte nun mal nicht besonders weit denken :roll:

Entweder du versuchst es irgendwie in die Config zu packen, obwohl die DB-Connection und die meisten User-spezifischen Sachen erst später kommen (d.h. du wirst es so eh vergessen können) oder du hackst eben in jedes Script dieselbe Routine rein. Anders geht es nicht. Ich hab dieses Billig-Script früher schon öfter modifziert und musst immer erst ein globales Script einbauen :evil:

btw.
:arrow: Programmierung / Scripts & Software
 
Johnson schrieb:
Sry, aber ich denke wir sind hier keine kostenlosen Ich-Muss-Nichts-Denken-Codefabrikanten (auch wenn du den Code warscheinlich trotzdem bekommen wirst) ...

Das ganze liese sich mit ein bisschen Logik und einer Mysqlabfrage lösen (Die aktiven Benutzer der letzten x Minuten?). Einfach ein ganz normales SELECT Statement mit einer Condition hintendran.

Entscheidende Stelle aus dem Code:



Auch wenn ich mich damit bei dir warscheinlich unbeliebt mache.

Sorry, aber das ist hier doch ein Forum, wo man fragen darf, oder nicht?
Außerdem bin ich kein Profi in php und bekomme auch nach langem rumprobieren nicht immer alles hin. Saß an diesem Problem schon ne ganze weile!
 
theHacker schrieb:
Du brauchst auf jeden Fall ein Script, was bei jedem Request ausgeführt wird.
Jagusch konnte nun mal nicht besonders weit denken :roll:

Entweder du versuchst es irgendwie in die Config zu packen, obwohl die DB-Connection und die meisten User-spezifischen Sachen erst später kommen (d.h. du wirst es so eh vergessen können) oder du hackst eben in jedes Script dieselbe Routine rein. Anders geht es nicht. Ich hab dieses Billig-Script früher schon öfter modifziert und musst immer erst ein globales Script einbauen :evil:
Also mir gefällt das script auch nicht wirklich. Ist teilweise auch irgendwie nicht so ganz logisch aufgebaut finde ich. Da gefällt mir das vms recht gut, was das angeht. Aber gut - tut jetzt hier nichts zur Sache.