CMS Workbench

Hilfreiche Codeschnipsel, Tipps und Tricks, um das eigene CMS (Bludit, WordPress, Joomla, ...) anzupassen


Steuern Sie die SPAM-Flut in Kommentaren und erlauben Sie nur einen Kommentar in 48h. Dieser Beitrag zeigt wie es geht.

User ID speichern

In diesem Beispiel geht es darum für den aktuellen Leser zu realisieren, das er nur einen Kommentar pro 48h abgeben kann. Für diesen Zweck erzeugt das Script eine zufällige ID, speichert diese ab und hinterlegt ob der User einen Kommentar erfasst hat.

...
... //--------------------------------------------
008 session_start();
009 $userId      = 0;
010 $userId      = random_int(0, time());
011 $userComment = 0;
012
013 if (isset($_COOKIE['userId'])) {
014 $userId = (int)$_COOKIE['userId'];
015 }
016  if (isset($_COOKIE['userComment'])) {
017 $userComment = (int)$_COOKIE['userComment'];
018 }
019
020  setcookie('userId', $userId, strtotime('+2 days'));
021  setcookie('userComment', $userComment, strtotime('+2 days'));
022
023  if (isset($_SESSION['userId'])) {
024    $userId = (int)$_SESSION['userId'];
025  }
...
... //--------------------------------------------
242 if (isset($_GET['savecomment'])) {
...
247 setcookie('userComment', $userId, strtotime('+2 days'));
...
267 if ($userComment == 0) {
... // neuer Leser veroeffentlicht seinen
... // ersten Kommentar. Dieser wird hier
... // verarbeitet und gespeichert
291 } else {
... // Der Besucher hatte bereits einen
... // Kommentar hinterlassen, denn in der
... // SESSION userComment steht die
... // generierte Zufalls userId
295 }
...
299 }

Zeile 008 bis Zeile 025 erzeugt bei einem neuen Besucher eine zufällige User-ID (genauer gesagt ist es eher eine Sitzungs-ID) und speichert diese in der SESSION und einem COOKIE ab, sofern die Sitzung schon bekannt ist, wird die ID aus dem Cookie gelesen. Das Cookie bleibt 2 Tage gültig und wird dann gelöscht.

Auch wenn der Leser die Webseite mit F5 erneut läd, so verändert sich die ID nicht mehr, sie bleibt gleich. Erst das schließen und neu starten des Browsers erzeugt dann eine neue ID. Erst dadurch ist der Leser - genauer die anonyme Sitzung gut für das Programm identifizierbar.

Ab Zeile 242 wird der Kommentar auf der Webseite verarbeitet. Die Variable userComment die zuvor auf 0 stand bekommt jetzt die userId zugewiesen, hatte der User noch keinen Kommentar verfasst (267) wird sein Kommentar gespeichert, ansonsten erhält er die Meldung, das er keinen neuen Kommentar verfassen darf.

Im übrigen ist das Coding Datenschutz konform, denn es wird keinerlei Surfverhalten oder gar User-Daten gespeichert. Es wird lediglich gespeichert das die aktuelle Sitzung einen Kommentar abgegeben hat - mehr nicht.





Channel Monitoring

Aus Zeit- und Kostengründen wünschen Sie die Betreuung Ihres Social-Kanals wie Xing, Kununu, YouTube, Facebook, Instagram, Twitter oder Ihrer Firmenseite.

Web-Design und Templating

Für Ihr Unternehmen benötigen Sie eine professionelle und sichere Webseite nach aktuellem Stand der Technik, um weitere Kundenfelder zu erschließen.

Bewertungen und Sterne

Ihr frisch gebackenes Unternehmen benötigt einen Image-Vorschuss, positive Bewertungen bei Google, Instagram uns co. ermöglichen einen sorglosen Start.