Als Webseitenbetreiber datenschutzrechtliche Einschränkungen beachten
Auch wenn das Speichern der IP-Adressen von Webseitenbesuchern zu Analysezwecken weit verbreitet ist, darf dies grundsätzlich nicht gemacht werden.
- IP-Adressen werden in datenschutzrechtlicher Hinsicht als personenbezogene Daten betrachtet, da es möglich ist, sie direkt einer bestimmten Person zuzuordnen.
- Personenbezogene Daten dürfen nur dann erhoben, also gespeichert und verarbeitet werden, wenn die betreffende Person ausdrücklich darin eingewilligt hat - ein Hinweis in der Datenschutzerklärung reicht dafür also nicht aus.
- Vielmehr muss der Besucher vor dem Speichern der IP-Adresse darauf hingewiesen werden, zum Beispiel über eine Eintrittsseite oder ein Login-System.
- So können IP-Adressen theoretisch gespeichert werden, wenn der Besuch Ihrer Webseite eine Anmeldung benötigt und der Benutzer bei der Anmeldung sein Einverständnis zu der Verwertung der Daten abgegeben hat.
IP-Adressen in einer Datei speichern
Am schnellsten können Sie IP-Adressen speichern, indem Sie diese mit PHP in eine Text-Datei auf Ihrem Webserver schreiben lassen.
- Erstellen Sie dazu eine Text-Datei (zum Beispiel "ip.txt") und laden Sie diese auf den Webserver Ihrer Webseite hoch.
- Geben Sie der Datei Schreibrechte, indem Sie dies entweder über die Admin-Verwaltung Ihrer Webseite einstellen oder die Schreibrechte über einen FTP-Client ändern.
- Öffnen Sie danach die Datei, mit der die IP-Adresse gespeichert werden soll, wenn die Seite aufgerufen wird (zum Beispiel "index.php").
- Geben Sie gleich in der ersten Zeile folgenden Code ein:
$ip = fopen('ip.txt', 'a');
fwrite( $ip, $_SERVER['REMOTE_ADDR'] . " | " . date("d.m.Y H:i") . "\n" );
fclose( $ip );
?> - Mit "fopen" öffnen Sie die Datei, mit "fwrite" schreiben Sie die IP-Adresse ("$_SERVER['REMOTE_ADDR']") sowie das Besuchsdatum "date("d.m.Y H:i")" in die Datei und erzeugen einen Zeilenumbruch ("\n"). Mit "fclose" schließen sie die Datei wieder.
- Speichern Sie die geänderte Datei ab und laden Sie diese gegebenenfalls noch auf Ihren Webserver hoch.
Dies ist zwar der schnellste Weg, um IP-Adressen zu speichern, allerdings ist die Auswertung der Daten dabei relativ schwierig und kann bei vielen Besuchern sehr schnell zu einer großen Datei führen. Zudem kann die Datei auch leicht durch Dritte aufgerufen werden. Deshalb empfiehlt es sich, die IP-Adresse in einer SQL-Datenbank zu speichern.
IP-Adressen in einer Datenbank speichern
Um die IP-Adressen in einer SQL-Datenbank zu speichern, müssen Sie zunächst eine Tabelle anlegen und danach die Werte über PHP eintragen.
- Loggen Sie sich dazu bei der grafischen Oberfläche Ihres SQL-Datenbanksystems ein (zum Beispiel "phpmyadmin").
- Erstellen Sie danach eine neue Tabelle. Sie können dies entweder manuell machen oder beispielsweise folgenden SQL-Code nutzen:
CREATE TABLE besucher (
ID INT AUTO_INCREMENT PRIMARY KEY,
ip VARCHAR(15) NOT NULL,
datum DATETIME NOT NULL
);
Dadurch erstellen Sie die Tabelle „besucher“ mit den Spalten "ID", "ip" und "datum" und weisen den Spalten das Format "INT" für Zahlen, "VARCHAR" für Strings und "DATETIME" für das Datum inkl. der Zeit zu. "PRIMARY KEY" bedeutet, dass die Zahl nicht doppelt verwendet werden darf, während "AUTO_INCREMENT" sicherstellt, dass immer durchlaufend eine neue Zahl erstellt wird. - Öffnen Sie danach die Datei, mit der Sie die IP-Adressen speichern wollen.
- Anschließend müssen Sie sich mit der Datenbank verbinden. Dafür benötigen Sie den Rechner, auf dem der SQL-Server installiert ist (das ist meistens „localhost“) sowie Ihren Benutzernamen und Ihr Passwort für die Datenbank und die spezielle Datenbank, die Sie benutzen dürfen.
- Geben Sie am Anfang Ihrer Datei folgenden Code ein:
$host = "localhost";
$user = "benutzer";
$pw = "passwort";
$db = "datenbankname";
$con = mysql_connect($host, $user, $pw);
mysql_select_db($db, $con);
Zuerst definieren Sie die Login-Variablen und danach verbinden Sie sich mit der Datenbank, um Daten zu speichern oder abrufen zu können. - Geben Sie danach folgende Zeilen ein:
$ip = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("INSERT INTO besucher (ip, datum) VALUES (“.$ip.”, NOW())”);
?>
In der ersten Zeile speichern Sie die IP-Adresse in einer Variable, um diese danach in der zweiten Zeile als neue Zeile in der Datenbank zu speichern. "INSERT INTO besucher" bedeutet, dass neue Werte in die Tabelle „besucher“ eingefügt werden. "(ip, datum)" sind die Spalten für die Werte und "VALUES" weist die Werte zu, also "$ip" für die IP-Adresse und "NOW()" für das aktuelle Datum und die aktuelle Zeit.
Daraufhin werden die Daten in der Tabelle „besucher“ gespeichert und Sie können sich diese über die grafische Oberfläche ansehen oder mit einer anderen PHP-Datei dynamisch ausgeben lassen.
Wie hilfreich finden Sie diesen Artikel?