Moin,
offensichtlich versuchst Du diesen "
PHP-Webseitenschutz" vom
Werner Zenk einzubauen. Dazu habe ich nur mein altes Tutorial von NOF:
http://www.nof-tutorials.com/PHP-Websei ... orial.html
… da der Einbau eigentlich ganz genauso dann auch in Mobirise funktioniert. Hier habe ich das in Mobirise eingebaut:
https://www.mobirise-tutorials.com/Mitglieder.php
Hinweis - Werner hatte da noch eine Variante "Seitenschutz", mit MySQL-Datenbank, für eine bessere Benutzerverwaltung:
https://www.mobirise-tutorials.com/Seitenschutz/
Falsch:
Ganz falsch ist der Einbau des
PHP-Codes in den "
Code Editor" des Blocks von Mobirise. Da gehört nur der
Formular-Teil hin, zur Eingabe der Benutzerdaten.
Der
PHP-Teil gehört als SESSION (Sitzungs) Abfrage vor den <DOCTYPE> in den dafür reservierten Bereich der
Seiteneinstellungen (Page Settings) , wie ich unten jetzt nochmals erkläre.
Anmeldung:
Zum
Einbau in Mobirise (genau wie bei NOF) verwendest Du den Code aus der Datei "anmeldung.php". Dort musst Du den
relativen Pfad zu Deiner geschützten Seite anpassen. So steht es in meinem Tutorial:
Code: Alles auswählen
header("Location: ./Sichere-Seite-1/sichere-seite-1.php"); // Gegebenenfalls muss diese hier angepasst werden!
Das müsste dann bei Dir so angepasst werden:
Code: Alles auswählen
header("Location: safety_main.php"); // Gegebenenfalls muss diese hier angepasst werden!
Wenn ich das richtig sehe, dann hast Du das auch schon korrekt gemacht.
Meine Seite zur Anmeldung, mit dem entsprechenden Formular, heißt nun - nicht mehr "anmeldung.php" - sondern:
Mitglieder.php
Das muss eine
PHP-Seite sein, da diese den PHP-Code aus dem Skript "anmeldung.php" beinhaltet. Du musst die Seite von Mobirise also unter den "Seiteneinstellungen" bei "
URL der Seite" auch in
.php in der Dateierweiterung umbenennen.
Zum Einbau solcher fremden Codes und Skripte in Mobirise, verwende ich immer einen einfachen Textblock aus der Rubrik "Article" - in meinem Fall aus dem Standard-Thema "Mobirise5".
1) Du benötigst also zunächst das
Formular zur Anmeldung aus dem Script "anmeldung.php".
So sieht dann der Code für das Formular auf dieser Seite bei mir aus:
Code: Alles auswählen
<div class="mbr-text mbr-fonts-style" data-app-selector=".mbr-text" mbr-theme-style="display-7">
<!-- Eigenes Formular zur Anmeldung auf Sicherer Seite -->
<form method="post">
<p>
<label>Benutzer:
<input type="text" name="name" required="required" autocomplete="username">
</label>
</p>
<p>
<label>Passwort:
<input type="password" name="passwort" required="required" autocomplete="current-password">
</label>
</p>
<p>
<input class="btn btn-primary" type="submit" name="anmeldung" value="Anmelden">
</p>
</form>
</div>
Durch den HTML-POST Befehl wird, beim Abschicken des Formulars, diese Seite erneut aufgerufen und dann das PHP Skript im Bereich "
Before <DOCTYPE> …" ausgeführt und zur gesicherten Seite umgeleitet.
Achte darauf, dass in diesem Bereich, der noch vor dem <DOCTYPE> (Dokumententyp) der Seite liegt,
keine Leerzeichen vor oder hinter dem PHP Skript stehen dürfen:
Code: Alles auswählen
<?php
/*
* PHP-Webseitenschutz - anmeldung.php
* - https://werner-zenk.de
*/
session_start();
include "benutzer/benutzer.php";
// Anmeldung überprüfen
if (isset($_POST["anmeldung"])) {
if (isset($BENUTZER_PASS[trim($_POST["name"])]) &&
$BENUTZER_PASS[trim($_POST["name"])] === $_POST["passwort"]) {
// Session setzen
session_regenerate_id();
$_SESSION["benutzername"] = trim($_POST["name"]);
// Zur "geschützten"-Seite nach der Anmeldung weiterleiten.
// Gegebenenfalls muss diese hier angepasst werden!
header("Location: Sichere-Seite.php");
}
}
// Abmeldung
if (isset($_GET["abmeldung"])) {
// Session und Cookies löschen
unset($_SESSION["benutzername"]);
$_SESSION = [];
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000, $params["path"],
$params["domain"], $params["secure"], $params["httponly"]);
}
session_destroy();
// Zur Anmeldung weiterleiten.
header("Location: Mitglieder.php");
}
?>

Wie Du im Skript oben sehen kannst, wird
bei mir auf die Seite "
Sichere-Seite.php" weitergeleitet, die Du natürlich auch bereits angelegt haben musst und die auch so heißt und ebenfalls die Dateiendung
.php hat:
Code: Alles auswählen
// Zur "geschützten"-Seite nach der Anmeldung weiterleiten.
// Gegebenenfalls muss diese hier angepasst werden!
header("Location: Sichere-Seite.php");
Bei Dir heißt diese Seite offensichtlich "
safety_main.php" und
muss auch existieren. Tut sie das nicht, gelangst Du automatisch wieder zur Anmeldung. Bei einer falschen Eingabe eines Benutzernamens oder des Passwortes gelangst Du ebenfalls automatisch wieder zur Anmeldung. Achte also auch auf Groß- und Kleinschreibung bei den Benutzereingaben.
Gesicherte Seite:
Bei dieser gesicherten Seite, die bei mir "
Sichere-Seite.php" (bei Dir "
safety_main.php") heißt, gehört dann praktisch der Code aus der Beispielseite "geheim.php" rein.
Dieser Code gehört dort auch wieder in den Bereich "
Before <DOCTYPE> …" (Achtung keine Leerzeichen davor oder dahinter) und sieht bei mir so aus:
Code: Alles auswählen
<?php
/*
* PHP-Webseitenschutz - geheim.php
* - https://werner-zenk.de
*
* Dieses PHP-Script muss an den Anfang jeder
* Seite die geschützt werden soll.
*/
session_start();
if (!isset($_SESSION["benutzername"])) {
// Zur Anmeldung weiterleiten
header("Location: Mitglieder.php");
exit;
}
?>
In diesem PHP-Code wird also lediglich überprüft ob der
Benutzername stimmt, wenn nicht wird zurück auf die Seite zur Anmeldung umgeleitet, in meinem Fall also zur meiner Seite "Mitglieder.php".
Zum
Abmelden eines Benutzers, kannst Du auf dieser gesicherten Seite auch noch einen Link einbauen, der dann wieder mit dem Skript auf der Seite "Mitglieder.php" über die Aktion "abmeldung" ausgeführt wird:
Code: Alles auswählen
<a style="text-decoration: underline; color: red;" href="Mitglieder.php?abmeldung">Abmelden</a>
Bitte zögere nicht, rechtzeitig weitere Fragen zu stellen, bevor es zu kompliziert wird. Versuche auch, die Skripte zu verstehen, denn nur das, was man versteht, kann man auch korrekt umsetzen.