tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
600
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    Hallo Leute!

    Ich möchte auf meiner HP gerne die Besucher die gerade on sind zählen. Dazu habe ich folgendes Script benutzt:
    <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>
    So es klappt ja auch aber...
    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
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    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

  3. #3
    Avatar von Hoellche
    Hoellche Hoellche ist offline Mitglied Bronze
    Registriert seit
    Jun 2002
    Beiträge
    43
    öhm soweit ich die sache sehe hast du dich bei
    PHP-Code:
    $fp fopen($datei"http://gladiators.devils-alliance.de/phpseite/useronline.dat"); 
    verhaspelt.
    du gibts 2x die datei als parameter an. es sollte so gehen
    PHP-Code:
    $fp fopen($datei,w+); 
     

  4. #4
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    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
     

  5. #5
    asterisk*2a asterisk*2a ist offline Mitglied
    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!

  6. #6
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    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****
     

  7. #7
    asterisk*2a asterisk*2a ist offline Mitglied
    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!

  8. #8
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    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!!
     

  9. #9
    Avatar von loki2002
    loki2002 loki2002 ist offline Mitglied Platin
    Registriert seit
    Jan 2002
    Ort
    011000110011011000110100
    Beiträge
    614
    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...
     

  10. #10
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    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
     

  11. #11
    asterisk*2a asterisk*2a ist offline Mitglied
    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

  1. Brauche unbedingt Hilfe bei echo
    Von kdc im Forum PHP
    Antworten: 10
    Letzter Beitrag: 19.03.08, 22:27
  2. Brauche unbedingt gute Hilfe °°
    Von Roma3 im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 14.03.08, 23:09
  3. brauche unbedingt hilfe
    Von synaptic im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 23.05.05, 00:51
  4. Brauche unbedingt eure Hilfe
    Von Kento im Forum Internet, DSL & Flatrate
    Antworten: 1
    Letzter Beitrag: 14.02.05, 17:58
  5. brauche unbedingt hilfe
    Von Christoph im Forum PHP
    Antworten: 12
    Letzter Beitrag: 16.02.02, 14:12