Ankündigung

Einklappen
Keine Ankündigung bisher.

Klicks zählen

Einklappen

Neue Werbung 2019

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

  • Klicks zählen

    Ich möchte auf einer bereits bestehenden HP was einbauen, damit Klicks eingeloggder User gezählt werden!
    Es geht darum, dass die eingeloggden User Punkte für ihre Klicks erhalten! 1 Klick= 1 Punkt! Nun ja, über Sinn und Unsinn einer solchen Funktion kann man streiten, aber lassen wir das mal beiseite...

    Nun ja, ich dachte zuerst daran, dass ich bei jedem Link eine Variable anhängen könnte die dann beim Laden der neuen Seite hochgezählt wird!

    Das Überzeugt aber aus verschiedenen Gesichtspunkten absolut nicht
    1. Sollten die Anzahl Klciks in ner DB gespeichert werden, wenn der User die Site wieder verlässt. Nun ja, mit JS theoretisch möglich, überzeugt mich aber nicht...

    2. Auch bei einem Refresh wird die Anzahl Klicks um 1 erhöht -> nicht tragisch aber unschön.

    3. Ist das ein heiden Aufwand bei allen Links die Klick-Variable anzuhängen...


    Gibts eine gescheitere Variante sowas zu machen, als mit übergeben von Variablen? Evtl. mit JS?


    Nun ja, ist halt sone Idee von mir, wenns nicht wirklich geht, dann könnt ich damit leben. Wäre super wenn mir vielleicht nen Anstoss geben könnte mit seiner Idee...

  • #2
    Eine Idee von mir:

    Ich weiss nicht wie dein Seitenaufbau aussieht. Aber zähl doch einfach in der Datenbank +1, wenn die Seite aufgerufen wird?

    Beispiel: index.php?seite=xyz

    einfach in die index.php prüfen ob der User eingelogt ist und wenn ja, DB Verbindung und dann +1 bei dem User bei Klicks.

    Immer wenn er etwas klickt (also die Seite neu lädt) wird +1 gemacht

    oder versteh ich da was falsch?

    MFG

    Kommentar


    • #3
      Problem dabei ist das mit jedem Klick ein connect kommen muss .. ??

      aber wenn's nicht zu viel Performance frisst .. mach's doch so ..

      Kommentar


      • #4
        Nö du verstehst das schon richtig!

        Danke für deinen Vorschlag, aber das gibt doch enormen Traffic mit der DB und das mit dem Refresh besteht immer noch...

        Da würd ich des Traffic wegen, dann glaub ich meine Version vorziehen und erst mal in ner Variable hochzählen und nur einmal in DB schreiben...

        Hat noch wer ne Idee?

        Kommentar


        • #5
          *hm* ... naja "enorm" wegen einem Feld ist ja nun "übertrienben" ode rhast du so extreme Zugriffszahlen

          Du kanns tja ausserdem checken ob der user in der Session schon auf der Seite war und somit das raufzählen deiner "Klickvariable" verhindern ...

          Kommentar


          • #6
            Zugriffszahlen sind täglich 6-Stellig! Nein Quatsch!

            Naja, mit enorm meinte ich natürlich nicht das Traffic-Volumen, aber bei jedem Seitenzugriff was in der DB zu speichern ist doch schon etwas übertrieben... Aber werds dann wohl trotzdem mal so angehen!

            By the way: Um wieviel verzögert denn eigentlich ein DB-Zugriff bei so wenig Daten den Script?

            Ausser jemand hat natürlich noch nen Vorschlag...

            Kommentar


            • #7
              Das Hauptproblem besteht darin, dass du nicht weisst wann der User die Seite verlässt er kann Logout drücken, oder er kann sein X drücken.

              Du kannst es auch so machen, dass du bei jedem Seitenaufruf eine Variable, nennen wir sie $klicker einfach immer um 1 erhöhst.

              --> $klicker

              Aber da des ja nichts bringt, weil bei jedem Seitenaufruf die Vorwerte verloren gehen, nehmen wir eine Session.

              $_SESSION['klicker']++;

              wenn jetzt der User kommt, klickt 5mal rum und klickt auf Logout, bekommt er die Punkte. Tut er jetzt aus Faulheit sein Browser einfach schliessen, bekommt er nix und hat Pech. Ist zwar nicht so Userfreundlich, aber immerhin nicht so "Traffic"-Steigend

              damit er nicht durch F5 drücken oder Refresh schummelt, kannst ja noch nen Limit einfügen, wie alle 5 oder 10 Sekunden zählt es nur. Einfache If-Schleife mit der Zeit.

              Wär eine zweite Variante und du brauchst nur 1 Datenbankzugriff. Mit der Zeit wärs zwar dann auch Schummelfreier, jedoch auch ungenauer, da manche Leute schnell klicken ok 5-10 Sekunden wär auch viel, mach 1-2 draus und ich denke, für deine Zwecke wärs ne gute Lösung. Zumindestens eine alternative, um Javascript nicht verwenden zu müssen.

              MFG

              Kommentar


              • #8
                Argh !!!

                Also:
                1. Klicks bei jedem Zugriff in der DB hochzählen ist der einzigste Weg der Rest ist Schwachsinn.
                2. Du musst in der DB nur in der User Tabelle ein weiteres Feld hinzufügen.
                3. Verbindest du dich doch sowieso jedes mal zur Datenbank da du anscheinend ein Loginsystem hast.
                4. Eine Verbindung jedes mal herzustellen ist auf keinem Auge schlimm. Vorallem nicht bei deiner Seite! Fast jede Seite macht bei jedem Zugriff einen DB Zugriff. Allein das hier das Forum würde ohne MySQL garnicht funktionieren und die Performance geht eher durch den Webserver bei viele Usern runter als die vielen DB Zugriffe!
                5. Was wirklich Zeit kostet wenn du riesen Mengen an Daten pro laden einer Seite mit der DB austauscht. Und damit meine ich nicht 1-100 Einträge sondern > 10 000.
                6. Einfach nur ein einzigen Query bei einem Seitenaufruf verzögert dein Skript und eine nicht messbare Zeit.
                7. Der Traffic hat da garnix mit zu tun! Du verbindest dich ja mit der DB aufm Server daher besteht ja garkein Austausch übers Internet! Außerdem ist der Datenaustausch beim hochzählen einer Zahl im gegensatz zum Laden der eigentlichen Seite mal so minimal das es wirklich nicht zu beachten ist.

                Also alles andere als die Seitenzugriffe per MySQL zu zählen wäre Schwachsinn!

                Kommentar

                Lädt...
                X