User Online Script ohne Funktion nur wieso?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • User Online Script ohne Funktion nur wieso?

    Hallo Leute,
    ich hab mir das Script von hier gezogen:
    Link

    und auf meine Seite hochgeladen nur leider funktrioniert das Script nicht und ich weiß nicht ganz wieso.

    Hier gehts zur Test Seite

    Hier gehts zur Txt

    PHP Info

    Ps: Rechte sind vergeben. Und der Debugg gibt au nix wieder.

  • #2
    register_globals? warum wendest du dich nicht an den autor des scriptes?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Also die Testseite bringt sehr viel Es scheint mir logisch, dass GET, POST und COOKIE leer sind/sein müssen, denn es werden keine URL Parameter, keine Formulardaten und keine Cookies übermittelt.
      Von deiner Testseite müsste man wohl mal den PHP Quellcode sehen, sonst ist heiteres PHP-Fehler-Raten angesagt.
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Quellcode:
        PHP-Code:
        <?php
        /*
          user_online.php - Anzahl der Besucher Online
        */

        // Konfiguration
        $besucher_online_konfiguration = array (
          
        // in welcher Datei soll es gespeichert werden
          
        'datei' => 'besucher_online.txt',
          
        // wie lange soll es dauern, bis ein Eintrag verfällt
          
        'zeitlimit' => 300 // 5 Minuten
        );

        // zählt den aktuellen Besucher
        function zaehle_besucher ($ident) {
          
        // hole die Liste
          
        $liste hole_besucher_liste ();

          
        // fuege das aktuelle Identifikationskriterium mit aktuellem Datum hinzu
          
        $liste[$ident] = time ();

          
        // schreibe die Liste
          
        schreibe_besucher_liste ($liste);
        }

        // holt die Liste aus einer Datei
        function hole_besucher_liste () {
          
        // importiere die Konfiguration
          
        global $besucher_online_konfiguration;

          
        // initialisiere Array
          
        $zeilen = array ();

          
        // öffne datei
          
        $fh fopen ($besucher_online_konfiguration['datei'], 'r');

          
        // fehler?
          
        if (!is_resource ($fh)) {
            return array ();
          }

          
        // sperre datei
          
        $res flock ($fhLOCK_SH);

          
        // gehe Zeilen durch
          
        while (!feof ($fh)) {
            
        $zeilen[] = fgets ($fh);
          }

          
        // entsperre Datei und schließe sie
          
        flock ($fhLOCK_UN);
          
        fclose ($fh);

          
        $ergebnis = array ();
          
        // gehe die Zeilen durch
          
        foreach ($zeilen as $zeile) {
            
        // trenne Identifikationskriterium von Zeitstempel
            
        list ($ident$stempel) = explode ('|'$zeile2);
            
        // wenn Identifikationskriterium leer ist, dann übergehen
            
        if (empty ($ident)) {
              continue;
            }

            
        // wenn stempel zu alt ist
            
        if ($stempel time() - $besucher_online_konfiguration['zeitlimit']) {
              
        // übergehen
              
        continue;
            }

            
        // füge zum Ergebnis hinzu
            
        $ergebnis[$ident] = (int)$stempel;
          }
          return 
        $ergebnis;
        }

        // gibt die Anzahl der Besucher zurück
        function anzahl_besucher () {
          return 
        count (hole_besucher_liste ());
        }

        // schreibe die Liste zurück
        function schreibe_besucher_liste ($liste) {
          
        // importiere die Konfiguration
          
        global $besucher_online_konfiguration;

          
        $ergebnis '';
          
        // gehe die Liste durch
          
        foreach ($liste as $ident => $stempel) {
            
        $ergebnis .= "$ident|$stempel\n";
          }

          
        // öffne datei
          
        $datei fopen ($besucher_online_konfiguration['datei'], 'w');

          
        // sperre datei
          
        flock ($dateiLOCK_EX);

          
        // Fehler?
          
        if (!is_resource ($datei)) {
            return 
        false;
          }

          
        // schreibe das ergebnis
          
        $cnt fwrite ($datei$ergebnis);

          
        // fehler?
          
        if ($cnt === false) {
            
        // entsperren und schließen
            
        flock ($dateiLOCK_UN);
            
        fclose ($datei);
            return 
        false;
          }

          
        // schließe die Datei
          
        flock ($dateiLOCK_UN);
          
        fclose ($datei);

          
        // wir sind fertig
          
        return true;
        }

        ?>
        wie und was muß ich den ändern das das auch ohne register_globals läuft?
        Sorry bin noch Anfänger hab daher nicht so die große Ahnung von PHP.

        Kommentar


        • #5
          Das sind aber nur Funktionsdefinitionen. Da erfolgt kein Funktionsaufruf nix. Ausserdem glaube ich nicht dass du ein register_globals() Problem hast, da ich in den Funktionen keinen Bezug auf globale Vars erkennen kann. Okay einen gibt es, aber in der Funktion wird die Var mit global korrekt addressiert.
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Hm.. ok wenns nicht an den register_globals liegt, wo liegt den dann der Hund begraben?

            Kommentar


            • #7


              Das sind aber nur Funktionsdefinitionen. Da erfolgt kein Funktionsaufruf nix.
              Den Quelltext der Test-Datei lieferst du auch nicht.

              Eigene Ansätze = Null.

              Kommentar


              • #8
                Original geschrieben von TobiaZ




                Den Quelltext der Test-Datei lieferst du auch nicht.

                Eigene Ansätze = Null.
                1. Ich hab gedebuggt und erkenne keinen Fehler
                2. der Qeuellcode steht doch oben
                bzw. der Code vom Script das <body> <html> usw kann man sich ja denken.
                Ansonsten ist da nur noch der Code vom debugg drinne aber der sollte ja nicht wichtig sein.

                Kommentar


                • #9
                  1. Ich hab gedebuggt und erkenne keinen Fehler
                  Habe auch nichts gegenteiliges behauptet, oder?

                  2. der Qeuellcode steht doch oben
                  Wo? Du hast nen paar funktionsaufrufe gepostet, die wie gesagt nirgends aufgerufen werden. So what?

                  bzw. der Code vom Script das <body> <html> usw kann man sich ja denken. Ansonsten ist da nur noch der Code vom debugg drinne aber der sollte ja nicht wichtig sein.


                  Du glaubst also immer noch, dass ein paar Funktions-Definitionen ein lauffähiges Programm ausmachen? Wo hast du deine Grundlagen-Kenntnisse gelassen?

                  Kommentar


                  • #10
                    1. ok... gibts nix mehr zu zu sagen.
                    2. Das is ja das was in meim Quellcode steht, dachte das das so funktioniert weil laut Orginalseite:
                    "Falls Sie sich für die Thematik nur oberflächlich interessieren, die Probleme ignorieren wollen und nur eine solche Anzeige realisieren wollen, dann reicht es aus, wenn Sie nur den nach unten ersten Lösungsvorschlag lesen sowie sich den nach unten Download holen"

                    Also wenn ich das richtig verstehe dann heist es runterladen hochladen und los gehts.

                    Da ich noch ziemlicher Anfänger in PHP bin hab ich nicht viel Grundlagen. Aber jetzt beim durchsehen ist mir aufgefallen das das Ergebniss nicht ausgegeben wird. Bleibt aber immer noch offen wieso nix in die besucher_online.txt geschrieben wird.

                    Edit:
                    Man sollte es vll mal hier mit versuchen:
                    Code:
                    <?php
                    
                    // einbinden der Datei zum Zählen der Besucher, die Online sind
                    require 'user_online.php';
                    
                    // diesen Besucher zählen
                    zaehle_besucher ($_SERVER['REMOTE_ADDR']);
                    
                    ?>
                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
                    <html>
                    <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
                      <title>Titel der Seite</title>
                    </head>
                    <body>
                    <?php $anz_besucher = anzahl_besucher(); ?>
                    <p>Es
                    <?php if ($anz_besucher == 1) { ?>
                    ist
                    <?php } else { ?>
                    sind
                    <?php } ?>
                    im Moment <?php echo $anz_besucher ?> Besucher online.</p>
                    </body>
                    </html>
                    dann klappts auch.
                    Zuletzt geändert von DiamondDog; 22.08.2008, 17:01.

                    Kommentar


                    • #11
                      dann klappts auch.
                      Also Problem gelöst?

                      Kommentar


                      • #12
                        Original geschrieben von TobiaZ
                        Also Problem gelöst?
                        Richtig Problem gelöst. 1000 Dank fürs Helfen und für die Geduld.

                        Edit: Eine frage hab ich noch und zwar wieso zeigt er 1 User Online an wenn keiner Online ist müste er den Eintrag nicht normal auf 0 setzen?
                        Zuletzt geändert von DiamondDog; 22.08.2008, 17:45.

                        Kommentar

                        Lädt...
                        X