Nach einen Tag Datenbank wieder klicken ?

Ahmedo

Grünschnabel
Guten Abend bzw. Nacht.
Ich hätte da eine kleine Frage :)
Mein Problem ist folgendes: Wenn man auf eine Seite geht z.B. /index.php?seite=50, dann wird in der Datenbank in der Spalte "klicks" einen höher gezählt. Das heißt, dass wenn die Seite aufgerufen wird, der Counter bzw. die Spalte halt sich um einen erhöht. Dies habe ich bereits. Aber nun ist das Problem, dass man dann tausend Mal die Seite reloaden kann & es wird immer wieder einen Klick höher gezählt.
Was ich versuche zu bekommen will ist, dass wenn ich nur 1x pro Tag den Zähler erhöhen kann ( pro User).
Das heißt: Wenn ich nun auf /index.php?seite=50 gehe, wird die Spalte um einen Klick erhöht, aber wenn ich die nun reloade, dann nicht mehr weiter erhöht. Wenn ich nun einen Tag abgewartet habe und ich die Seite aufrufe, soll die Spalte bzw. die Klicksanzahl um einen erhöht werden.

Folgenden Code habe ich momentan:
PHP:
$abfrageid = 'SELECT * FROM serien  WHERE name = "'.NAME_SELF.'"'; // NAME_SELF = Name der Seite
$ergebnisid = mysql_query($abfrageid)
    OR die("Error: $abfrageid <br>".mysql_error());

while($rowid = mysql_fetch_object($ergebnisid)) {
 $id = "$rowid->pageid"; //ID per URL übergeben
 }
$abfrageids = 'SELECT * FROM iv_anime_serien  WHERE name = "'.NAME_SELF.'"';
$ergebnisids = mysql_query($abfrageids)
    OR die("Error: $abfrageids <br>".mysql_error());

while($zeile = mysql_fetch_object($ergebnisids))
{
    $vote = $zeile->vote; // Auslesen der aktuellen Hits
    $page = $zeile->page;
    $vote++; // Hits um einen erhöhen
     
    $eintrag = "UPDATE serien SET vote = '".$vote."' WHERE `pageid` = $id LIMIT 1 "; // Update des Vote Wertes
 
    $result = mysql_query($eintrag); // SQL Befehl ausführen
 //   }
}

Wisst ihr, wie ich dies nun realisieren könnte ?
 
Hi,
nur mal so eine Idee, aber könntest du nicht ein Cookie setzen in dem das Datum des letzten Klicks steht.
Beim näxhsten Besuch wird dieses Cookie ausgelesen und geschaut ob das Datum des aktuellen entspricht und wenn nicht dann +1 Klick.

Grüße
 
Eine IP-Basierende Reloadsperre wäre da wohl das richtige, denn nicht jeder hat Cookies eingeschaltet ;)
 
Oder eine Kombination aus beidem... 100% Sicherheit, dass pro User nur einmal pro Tag gezählt wird, wirst du imho nicht erreichen können.

Aber wie der Bastard Operator schon gesagt hat: Erhöhe nur, wenn die IP an dem Tag noch nicht erhöht hat. Du kannst auch mit Sessions arbeiten und checken ob die Seite durch den User mit der entsprechenden Session-ID schon aufgerufen worden ist. Daneben kannst du ja dort Cookies setzen, wo der User solche akzeptiert. Mit einer Kombination aus den Möglihckeiten solltest du eigentlich relativ nahe an das Wunschergebnis kommen.
 
Zurück