NOF-Forum | Referenzen | Kontakt | Impressum
Tutorial - MySQL Webseitenschutz von Webbausteine.de - nur für fortgeschrittene Benutzer geeignet - Tutorial für Bildschutz auf der “Sicheren Seite 1”
Ladet etwas neuere Skripte in meinem Download-Archiv als “2021-12-27-mysql_webseitenschutz.zip” herunter. Der Einbau bleibt gleich.
Tutorial und verwendete Skripte vom: 02.10.2016
Ladet Euch zunächst die Skripte bei Werner-Zenk.de herunter. Ihr erhaltet eine Datei “mysql_webseitenschutz.zip”, die Ihr bitte entpackt. Nach dem Entpacken findet Ihr ein Verzeichnis:
mit allen benötigten Dateien. Lest Euch aufmerksam die Datei lies-micht.txt durch und befolgt genau diese Schritte in dieser Reihenfolge.
Voraussetzung ist eine MySQL Datenbank, die Ihr lediglich bei Eurem Provider als neue Datenbank einrichten müsst und PHP 5.4 (oder höher). Sämtliche benötigten Tabellen erstellt das Skript “installation.php” von Webbausteine.de selbstständig.
Gewisse Kenntnisse in HTML, CSS, JavaScript und PHP werden nur notwendig, wenn Ihr das Erscheinungsbild dieser Skripte ändern und an Eure Wünsche anpassen wollt, so wie ich es hier bei dem direkten Einbau in NOF, mit einem Beispiel des einzubauenden Codes, getan habe.
Öffnet die Datei
mit z.B. Eurem Windows-Editor. Dort tragt Ihr dann Eure, bei der Erstellung der Datenbank vom Server zur Verfügung gestellten, Verbindungsdaten gleich am Anfang des Skripts ein. Das sieht dann ungefähr so aus:
// Zugangsdaten zur Datenbank
// Datenbank-Host und Datenbank-Name
$SERVER = "mysql:host=db123725987.db.1and1.com;
dbname=db123725987";
$BENUTZER = "dbo123725987"; // Datenbank-User (Benutzername)
$PASSWORT = "DeinPasswortHierEintragen"; // Datenbank-Passwort
In dieser Datei tragt Ihr auch Euren Administrator-Namen und das dazugehörige Passwort ein.
Es stehen noch viele weitere Einstellung zur Verfügung, wie z.B. ob die Benutzer sich mittels Bestätigung des zugesendeten Links freischalten können oder ob dies nur der Administrator tun soll, die aber alle gut kommentiert und daher selbsterklärend sind.
Jetzt kopiert Ihr sämtliche Dateien aus dem Verzeichnis “mysql_webseitenschutz” mit Eurem FTP-Programm direkt auf Euren Server in ein Verzeichnis Eurer Wahl. Ich habe das hier mal “Seitenschutz” genannt.
Als nächstes ruft Ihr in Eurem Browser einmalig das Skript zur Installation der Datenbank auf:
also z.B.:
www.DeineDomain.de/Seitenschutz/installation.php. Dieses Skript solltet Ihr, nach der Installation, auf dem Server wieder löschen.
Nun seid Ihr bereits fertig und könnt zum Testen mal einige Benutzer registrieren.
Einen Link zur Verwaltung für den Administrator, findet Ihr auf der gesicherten Seite “hauptseite.php”, nachdem Ihr Euch mit Euren Admin-Zugangsdaten angemeldet habt. Dieser Link ist ausschließlich vom Administrator zu sehen. Dort könnt Ihr Benutzer z.B. freischalten, falls Ihr eingestellt habt, dass nur der Administrator Benutzer freischalten darf. Hier könnt Ihr auch Benutzer sperren oder löschen.
Nun könnt Ihr entweder mit einem direktem Link auf die Startseite, also z.B.:
www.DeineDomain.de/Seitenschutz/index.php
oder auf diese Seite mittels Inlineframe verlinken.
Hier eine Ansicht der geschützten “Hauptseite” vom Skript, auf der nur für den Administrator ein Link zur Benutzerverwaltung zu sehen ist. Auf den geschützten Seiten wird eine individuelle Begrüßung durch den jeweiligen Benutzernamen angezeigt.
Hier eine Ansicht der Benutzerverwaltung für den Administrator (hier noch ohne irgendwelche registrierten Benutzer).
Direkter Einbau in NOF:
Der direkte Einbau in NOF ist nur etwas für fortgeschrittene Benutzer, die sich bereits sehr gut in PHP und CSS auskennen. Ich habe die Skripte hier direkt in meine NOF-Seiten eingebunden und verzichte vorerst auf eine noch detailliertere Erklärung, da diese sehr umfangreich werden würde.
Für diejenigen, die es trotzdem versuchen wollen, hier einige Tipps - alle NOF-Seiten müssen natürlich auf die Datei-Erweiterung .php umgestellt werden:
Jede später zu schützende Seite muss dann also lediglich am “Beginn der Seite” (keine Leerzeile lassen) diesen PHP-Code eingefügt bekommen:
<?php
// Webseitenschutz
// Diesen Code für alle Seiten benutzen
// die geschützt werden sollen.
session_start();
if (!isset($_SESSION["login"])) {
header("Location: anmeldung.php");
exit;
}
?>
Beispiel für den Einbau in NOF von der Seite anmeldung.php - entsprechend macht Ihr das mit allen anderen Seiten ebenso.
> Layout markieren > Fenster “Layout-Eigenschaften” > Button “HTML” > erster Button (links) “Beginn der Seite” (keine Leerzeile lassen)
<?php
/*
MySQL-Webseitenschutz - Anmeldung/Abmeldung
www.webbausteine.de
*/
session_start();
include "einstellungen/einstellungen.php";
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["benutzername"] != "") {
// Anmeldeversuche
if (!isset($_SESSION["versuche"])) {
$_SESSION["versuche"] = 1;
}
else {
$_SESSION["versuche"]++;
}
// Name, Passwort und Anmeldeversuche überprüfen
$_POST["benutzername"] = trim($_POST["benutzername"]);
$_POST["passwort"] = trim($_POST["passwort"]);
$select = $VERBINDUNG->prepare("SELECT `benutzername`, `passwort`, `sperre` FROM `" . $TBL_NAME . "` WHERE `benutzername` =
:benutzername");
$select->bindValue(':benutzername', $_POST["benutzername"]);
$select->execute();
$reg = $select->fetchAll(PDO::FETCH_OBJ);
if (count($reg) == 1) {
if ($reg[0]->benutzername == $_POST["benutzername"] &&
$reg[0]->passwort == (md5($_POST["passwort"]) . substr($SALT, 0, 24)) &&
$reg[0]->sperre == "1" &&
$_SESSION["versuche"] <= $ANMELDEVERSUCHE) {
$_SESSION["login"] = true;
$_SESSION["benutzer"] = $reg[0]->benutzername;
$_SESSION["Admin"] = $reg[0]->benutzername == $ADMIN_NAME ? true : false;
unset($_SESSION["versuche"]);
// Weiterleitung zur geschützten Seite
header("Location: hauptseite.php");
exit;
}
else {
$fehler = true;
}
}
}
// Abmeldung
if (isset($_SESSION["login"]) && isset($_GET["abmeldung"])) {
// Letzter Besuch und Onlinestatus eintragen
$VERBINDUNG->query("UPDATE `" . $TBL_NAME . "` SET `letzterbesuch` = NOW() WHERE `benutzername` = '" . $_SESSION["benutzer"] .
"'");
session_destroy();
header("Location: anmeldung.php?abmeldung_ok");
exit;
}
?>
> Layout markieren > Fenster “Layout-Eigenschaften” > Button “HTML” > zweiter Button (von links) “Zwischen Head Tags” (die Style-Anweisung)
<style>
p.ok {
color: #00B900;
}
p.fehler {
color: #EE0000;
}
span.pflichtfeld {
color: #EE0000;
}
</style>
> Layout markieren > 1. Textfeld aufziehen (Cursor blink) > mittlere Button im Fenster “Text-Eigenschaften” (Textfeld) > Button “HTML”
Für das Eingabe-Formular in den HTML-Code Editor einfügen:
<form action="anmeldung.php" method="post">
<p>
<label>Benutzername: <span class="pflichtfeld">✲</span> <br>
<input type="text" name="benutzername" value="<?php echo isset($_POST['benutzername']) ? $_POST['benutzername'] : ""; ?>" size="40" maxlength="35" required="required" autofocus="autofocus"></label>
</p>
<p>
<label>Passwort: <span class="pflichtfeld">✲</span> <br>
<input type="password" name="passwort" size="25" required="required"></label>
<input type="submit" value="Anmelden">
</p>
</form>
> Layout markieren > 2. Textfeld darunter aufziehen (Cursor blink) > mittlere Button im Fenster “Text-Eigenschaften” (Textfeld) > Button “HTML”
Für den Hinweis-Text in den HTML-Code Editor einfügen:
<?php
if (isset($_GET["abmeldung_ok"])) {
echo '<p class="ok">✔ Du wurdest erfolgreich abgemeldet.</p>';
}
if (isset($fehler) && $_SESSION["versuche"] < $ANMELDEVERSUCHE) {
echo '<p class="fehler">✘ Der Benutzername oder das Passwort ist falsch!<br>
Anmeldeversuch ' . $_SESSION["versuche"] . ' von ' . $ANMELDEVERSUCHE . '.</p>';
}
if (isset($_SESSION["versuche"])) {
if ($_SESSION["versuche"] >= $ANMELDEVERSUCHE) {
echo '<p class="fehler">✘ Es stehen Dir keine weiteren Anmeldeversuche zur Verfügung!</p>';
}
}
?>
Viel Erfolg!
Tutorials von Thomas Frei-Herrmann