Julian S: Sparsamste Statistikspeicherung

Hallo SelfHtml-User,

ich möchte gerne eine sehr einfache Statistik bieten, die für jeden User, der ein Javascript von einer externen Seite aufruft, folgendes speichert:

1. Zeitpunkt
2. IP Addresse (Zur Kontrolle, ob der User unique ist)

Nun bin ich am Überlegen, da der Javascript auf einem seperaten Server läuft, ob ich MySQL überhaupt anschalten soll und jedes Mal die Daten in eine Datenbank schreiben lassen soll, oder ob ich einfach für jede IP Adresse ein TXT-File in einem Ordner anlege worin die beiden Daten gespeichert werden und jede Stunde die Files einmal auslesen lasse.

Nun also zur eigentlich Frage:
Was ist eurer Meinung nach die sparsamste Methode, um das abzuspeichern? Der Server soll möglichst wenig belastet werden, damit maximal viele Scripte auf ihm Laufen können. Die Statistiken müssen, wie oben erwähnt, nicht in Echtzeit ausgewertet werden.

MfG,
Julian

  1. hi,

    Nun bin ich am Überlegen, da der Javascript auf einem seperaten Server läuft,

    Nene, da hast Du was falsch verstanden, JavaScript läuft nicht auf Servern sondern im UserAgent (Browser). Statistische Erhebungen, wie Seitenaufrufe jedoch kannst Du schon mit JavaScript anstoßen, beispielsweise mit Ajax. Dabei ist jedoch zu bedenken, dass UserAgents ohne JavaScript nicht erfasst werden.

    Statistische Erhebungen machen auch nur Sinn, wenn die Speicherung serverseitig erfolgt, zweckmäßigerweise in einer DB, da gibt es für verschiedene Serverseitige Sprachen/Scripts recht einfach zu bedienende Schnittstellen, bspw. für Perl und PHP.

    Und lass die Finger von der IP-Adresse, manche SuperUser sehen diese Adresse als ihre PrivatDaten an, zumindest für die Zeit des Dial-In beim Provider. Wieder andere benutzen Proxy-Server woraus sich u.U. bei jedem Request eine andere IP-Adresse ergibt. Und außer Schäuble kann sowieso keiner was mit der IP-Adresse anfangen.

    Für ganz einfache Statistiken reicht die Speicherung der URL der Seite, die Anzahl der Aufrufe und der Zeitpunkt des letzten Zugriffs, hier ein Beispiel.

    Machs gut,
    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. Okay, ich glaube wirklich, ich habe mich an der ein oder anderen Stelle etwas doof ausgedrückt. Also etwas ausführlicher:

      1. Ich habe ein Widget entworfen, welches über einen Javascript vom User eingebaut wird. Nun möchte ich gucken (ich benachrichtige den Webseitenbetreiber natürlich darüber, bevor es hier zu Diskussionen kommt), wie aktiv dieses Widget auf der Webseite aufgerufen wird. Aus diesem Grund kommen für mich Serverlogs und Analytics nicht in Frage, da es nicht um meinen Server geht, sondern um den, auf dem das Widget ausgeführt wird.

      2. Zum Speichern möchte ich tatsächlich PHP benutzen. Das Javascript ist, wie gesagt, nur für das Widget gedacht. Also in dem JS ist quasi ein PHP Code eingebaut, der die oben beschriebenen Funktionen erfüllen soll. Das habe ich wirklich falsch ausgedrückt.

      1. Hallo

        1. Zum Speichern möchte ich tatsächlich PHP benutzen. Das Javascript ist, wie gesagt, nur für das Widget gedacht. Also in dem JS ist quasi ein PHP Code eingebaut, der die oben beschriebenen Funktionen erfüllen soll. Das habe ich wirklich falsch ausgedrückt.

        Ich hoffe, jetzt nicht. *Im* javaScript-Code gibt es einen/mehrere PHP-Abschnitt(e), die bestimmte Aufgaben erfüllen sollen? Das wird nicht funktionieren, da im Browser, wo JavaScript ausgeführt wird, PHP *nicht* ausgeführt wird. Du kannst aber mit JavaScript ein PHP-Skript auf deinem Webserver anstoßen und mit Daten versorgen. Das nennt sich neudeutsch "Ajax".

        Tschö, Auge

        --
        Die deutschen Interessen werden am Liechtenstein verteidigt.
        Veranstaltungsdatenbank Vdb 0.3
        1. Wieso sollte das nicht klappen? Ich kann ein JS File genauso durch PHP erstellen lassen mit entsprechendem Header wie ein HTML File.

          Darum geht es hier doch auch garnicht...

          1. Hallo

            Wieso sollte das nicht klappen? Ich kann ein JS File genauso durch PHP erstellen lassen mit entsprechendem Header wie ein HTML File.

            Deine Beschreibung lautete aber nicht "ich erstelle mit PHP ein JavcaScript" sondern "Ich habe PHP im JavaScript-Code".

            <zitat src="https://forum.selfhtml.org/?t=184456&m=1223089">Also in dem JS ist quasi ein PHP Code eingebaut</zitat>

            Und *das* funktioniert *nicht*.

            Deshalb mein:

            »» Ich hoffe, jetzt nicht.

            auf dein:

            »» »» Das habe ich wirklich falsch ausgedrückt.

            Tschö, Auge

            --
            Die deutschen Interessen werden am Liechtenstein verteidigt.
            Veranstaltungsdatenbank Vdb 0.3
            1. Ist dennoch null Hilfe für das Problem. Würde es um PHP oder JS ansich gehen hätte ich nicht die Kategorie PROGRAMMIERTECHNIK ausgewählt sondern PHP oder JS.

  2. Moin!

    ich möchte gerne eine sehr einfache Statistik bieten, die für jeden User, der ein Javascript von einer externen Seite aufruft, folgendes speichert:

    1. Zeitpunkt
    2. IP Addresse (Zur Kontrolle, ob der User unique ist)

    Nun bin ich am Überlegen, da der Javascript auf einem seperaten Server läuft, ob ich MySQL überhaupt anschalten soll und jedes Mal die Daten in eine Datenbank schreiben lassen soll, oder ob ich einfach für jede IP Adresse ein TXT-File in einem Ordner anlege worin die beiden Daten gespeichert werden und jede Stunde die Files einmal auslesen lasse.

    Jeder Webserver loggt normalerweise schon ausreichend ausführlich die von dir gewünschten Informationen.

    Es gibt also eigentlich keinen Grund, das doppelt zu tun. Werte das bestehende Logfile einfach aus.

    - Sven Rautenberg

    1. Moin!

      Jeder Webserver loggt normalerweise schon ausreichend ausführlich die von dir gewünschten Informationen.

      Klar. Aber nicht jeder Provider erlaubt den Zugriff auf die Logfiles.

      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  3. Hai Julian,

    wie Sven schon schrieb bietet dir so etwas eigentlich bereits der Provider ausreichend an.
    Wenn es noch ausgiebiger sein soll, dann kannst Du auch Google-Analytics einbinden(*). Hier hat man wirklich sehr viele Kriterien zur Auswahl.

    MfG,
    Sympatisant

    (*) Haengt natuerlich davon ab, ob man Google diese Daten geben moechte.

    --
    "If the future isn't bright, at least it is colorful"