CMS - Workbench | DE


Templating and Coding for CMS (WordPress, Bludit, Automad, Typesetter, GetSimple, Pico and more)


User-ID speichern

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

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.

22.11.2020 • PHP • SPAM UserID Speichern


Oliver Lohse - Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Sprachen bzw. Markup-Dialekten, z.B.: Java, JEE, COBOL, PHP, Python, MySQL, HTML, CSS, ANSI C, Lisp, Rexx, JavaScript, Scheme, ActionScript 2.0, Maschinensprache, Assembler und JCL. Seit mehr als 22 Jahren arbeite ich in einem grossen Softwareunternehmen in Niedersachsen. Sie sehen auf dieser Seite mein eigens für Bludit CMS entwickeltes Theme "Reaktor-Block IV".

Kontakt: Κontakt@Οliver-Lohse.de


Empfehlungen:



Bludits großer Vorteil

Natürlich speichern viele Flatfile CMS den Content in normal lesbaren ASCII Dateien, doch Bludit ist besonders.

mehr...

Einfacher SPAM Schutz

mehr...



CMS Workbench

Hilfreiche Tipps, Tricks, Codings und Codeschnipsel, die im Rahmen der Entwicklung, Weiterentwicklung und Templatings zum Thema CMS immer wieder benötigt werden - aus verschiedenen Sprachdialekten wie Java, JavaScript, PHP, Python und anderen.