ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
600
600
EMPFEHLEN
-
Hallo Leute!
Ich möchte auf meiner HP gerne die Besucher die gerade on sind zählen. Dazu habe ich folgendes Script benutzt:
So es klappt ja auch aber...<script language="php">
// die Datei, in die geschrieben werden soll
$datei = "http://gladiators.devils-alliance.de/phpseite/useronline.dat";
// erstelle Datei, falls sie nicht existiert
if (!file_exists($datei)) fclose(fopen($datei, "http://gladiators.devils-alliance.de/phpseite/useronline.dat"));
// Einlesen der Datei in ein Array (eine Zeile pro Arrayfeld)
$users = file($datei);
$gefunden = false;
// Anzahl der Einträge ermitteln
$anzahl_users = count($users);
// Datei zum Schreiben öffnen
$fp = fopen($datei, "http://gladiators.devils-alliance.de/phpseite/useronline.dat");
// Durchlaufen der Einträge
foreach($users as $user)
{
// in ein Array aufsplitten
$user = explode("|", $user);
// wenn der Eintrag älter als 5 Minuten (=300 Sekunden) ist...
if ($user[1]+300 < time())
{
// Anzahl der User um 1 verringern
$anzahl_users--;
// nächsten Schleifendurchlauf starten
continue;
}
// wenn der User schon eingetragen ist, dann...
elseif ($user[0] == $REMOTE_ADDR)
{
// ...aktuelle Zeit setzen
$user[1] = time();
// ...bestätigen, dass kein neuer Eintrag erforderlich ist
$gefunden = true;
}
// wieder in Zeichenkette umwandeln und Zeilenumbruch anfügen
$user = trim(implode("|", $user))."\n";
// in Datei schreiben
fputs($fp, $user);
}
// wenn der User noch nicht eingetragen ist...
if (!$gefunden)
{
// neuen Eintrag direkt in die Datei schreiben
fputs($fp, $REMOTE_ADDR."|".time()."\n");
// Anzahl der User um 1 erhöhen
$anzahl_users++;
}
// Datei schließen
fclose($fp);
// Ausgabe
echo "aktive User:".$anzahl_users;
</script>
Die Zahl der Besucher steht immer auf 1 egal wieviele da drauf sind. Habs schon mit paar Kumpels übers ICQ geklärt das die da mal rauf gehn sollen und ich dann seh obs geht. Aber es will einfach nicht
-
Also wenn du's richtig kopiert hättest, würde es ja funktionieren
Übernimm einfach den Quelltext aus meinem Tutorial genau so, wie er da steht, dann klappt's auch. Du solltest höchstens anstatt $REMOTE_ADDR $_SERVER['REMOTE_ADDR'] schreiben. Hab's grade bei mir im LAN von drei verschiedenen Rechnern versucht, klappt einwandfrei.
reima„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
öhm soweit ich die sache sehe hast du dich bei
verhaspelt.PHP-Code:$fp = fopen($datei, "http://gladiators.devils-alliance.de/phpseite/useronline.dat");
du gibts 2x die datei als parameter an. es sollte so gehen
PHP-Code:$fp = fopen($datei,w+);
-
Reima ich habe es haargenau kopiert und auch das umgeändert was du gesagt hast, aber es klappt nicht immer nur user:1 egal was ich mach. Auch die Variante von Hoellche hat nicht geklappt...
Ich krieg noch ne Krise...Ach übrigens wollt ich ja auch nen Counter installieren, einer mit Reloadsperre, das Script hab ich auch hier irgendwo aus nem Forum...Bei dem das selbe, immer Nur 1 angezeigt? Was ist das**** Aber bei Kumpels wird auch nur immer 1 angezeigt. Ne Datenbank brauch ich doch dafür nicht oder? Muss ich vielleicht noch etwas an der Datei useronline.dat machen? Bzw. beim Counter an den Datein Zahl.txt und IPlogger.txt... BITTEE HELFT MIR
MfG 2Pac
-
23.06.02 16:36 #5
- Registriert seit
- Jun 2002
- Beiträge
- 24
Dein Anfangsscript ist recht gut finde ich. Hat aber ein paar schlechte pasagen die meiner Meinung anders gelöst werden könnten. Aber ehe ich hier dein Script zu 30% umschreibe mach ich einfach C&P von meinem. Benutze ich selber.
useronline.php
PHP-Code:<?
// die Datei, in die geschrieben werden soll
$datei = "useronline.dat";
// erstelle Datei, falls sie nicht existiert
if (!file_exists($datei)) fclose(fopen($datei, "w"));
// Einlesen der Datei in ein Array (eine Zeile pro Arrayfeld)
$users = file($datei);
$gefunden = false;
// Anzahl der Einträge ermitteln
$anzahl_users = count($users);
// Datei zum Schreiben öffnen
$fp = fopen($datei, "w");
// Durchlaufen der Einträge
foreach($users as $user)
{
// in ein Array aufsplitten
$user = explode("|", $user);
// wenn der Eintrag älter als 5 Minuten (=300 Sekunden) ist...
if ($user[1]+300 < time())
{
// Anzahl der User um 1 verringern
$anzahl_users--;
// nächsten Schleifendurchlauf starten
continue;
}
// wenn der User schon eingetragen ist, dann...
elseif ($user[0] == $REMOTE_ADDR)
{
// ...aktuelle Zeit setzen
$user[1] = time();
// ...bestätigen, dass kein neuer Eintrag erforderlich ist
$gefunden = true;
}
// wieder in Zeichenkette umwandeln und Zeilenumbruch anfügen
$user = trim(implode("|", $user))."\n";
// in Datei schreiben
fputs($fp, $user);
}
// wenn der User noch nicht eingetragen ist...
if (!$gefunden)
{
// neuen Eintrag direkt in die Datei schreiben
fputs($fp, $REMOTE_ADDR."|".time()."\n");
// Anzahl der User um 1 erhöhen
$anzahl_users++;
}
// Datei schließen
fclose($fp);
// Ausgabe
echo $anzahl_users." User(s) online.";
?>Man, was issne jetzt schu wieder falsch ******! Ich krisch ne Kriese!
-
das ist haargenau der Quelltext den ich benutzt habe!bis auf das ich bei der datei useronline.dat das genaue verzeichnis auf dem server angegeben...
so weitere Lösungsvorschläge****
-
23.06.02 18:45 #7
- Registriert seit
- Jun 2002
- Beiträge
- 24
das ding ****t ... zack aus basta. dann versorg dier ne ordenlichen webspace von allinkl.com und hub nich von einem webspace zum annern. ihr mit eurem minimalismus
Man, was issne jetzt schu wieder falsch ******! Ich krisch ne Kriese!
-
ich hab ne .de domain also sag hier nix von webspace rumhubben!
Ok die de domain gehört mein kumpel und ich hab nur unter domain trotzdem isses .de!Und ich linke mit de.vu drauf. Wenns net glaubst das es net geht dann add mich im icq und ich geb dir den link und du kannst es selber ansehn!!
-
23.06.02 20:39 #9
hast du der datei useronline.dat auch schreibrechte gegeben? chmod 777 ?
ansonsten kann es durchaus an dem . de .vu redirect liegen... du solltest anstelle von "direkt" linken lieber einen header redirect machen ( header("location:h**p://bla"); ) .. um so fehler zu vermeiden...
-
Jo genau das wars chmod666
aber der gute reima hats mir im icq mit auf den weg gegeben und nun gehts supi
Trotzdem danke an alle die mir helfen wollten bzw. konnten...CYA 2Pac
-
24.06.02 01:57 #11
- Registriert seit
- Jun 2002
- Beiträge
- 24
%) Ich roll mich in die ecke .... in jedem tut oder bei mir die bücher wird das einem bei jedem script vor die nase gahlten ... soll itz nich beleidigend sein oder so ...
keiner ist unfehlbar.
Man, was issne jetzt schu wieder falsch ******! Ich krisch ne Kriese!
Ähnliche Themen
-
Brauche unbedingt Hilfe bei echo
Von kdc im Forum PHPAntworten: 10Letzter Beitrag: 19.03.08, 22:27 -
Brauche unbedingt gute Hilfe °°
Von Roma3 im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 14.03.08, 23:09 -
brauche unbedingt hilfe
Von synaptic im Forum Javascript & AjaxAntworten: 10Letzter Beitrag: 23.05.05, 00:51 -
Brauche unbedingt eure Hilfe
Von Kento im Forum Internet, DSL & FlatrateAntworten: 1Letzter Beitrag: 14.02.05, 17:58 -
brauche unbedingt hilfe
Von Christoph im Forum PHPAntworten: 12Letzter Beitrag: 16.02.02, 14:12





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren