WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 06.02.2019 14:02:02

ice
Mitglied

Einfacher Passwortschutz für Seite

Hallo zusammen,

ich wünsche mir einen einfachen Passwortschutz für einzelne Seiten von WBCE, ohne einen Benutzer anlegen zu müssen mit all seinen Nachteilen.

Viele Grüße
Martin

Offline

#2 06.02.2019 14:20:51

byteworker
Mitglied

Re: Einfacher Passwortschutz für Seite

Ich weiss nicht, ob das noch so funktioniert:

https://forum.websitebaker.org/index.php?topic=17532.0

Offline

Liked by:

ice

#3 06.02.2019 14:46:45

ice
Mitglied

Re: Einfacher Passwortschutz für Seite

Ich dank Dir für den grandiosen Hinweis, das funktioniert tatsächlich noch so!
Damit eröffnen sich für mich noch viele andere Möglichkeiten!

Das ist einfach genial an WBCE ... Wenn man weiß wo, kann man damit echt so gut wie alles auf die Beine stellen.

Offline

#4 06.02.2019 15:03:34

ice
Mitglied

Re: Einfacher Passwortschutz für Seite

Nochmal als deutsche Zusammenfassung:

1. Als erstes dupliziert man per FTP sein aktuell verwendetes Theme/Design und benennt es neu, z.B. eigenes "theme_passwort". Dabei natürlich auch die info.php Datei anpassen.

2. Das jetzt neue Theme über Erweiterungen ==> Erweitert "Templates neu Laden" WBCE bekannt machen.

3. WICHTIG: Das Passwort der zu schützenden Seite wird in die Beschreibung der Seite in den Seiteneinstellungen von WBCE eingegeben. Deswegen ist es wichtig, in der index.php des neu erstellten Themes die Zeile "<meta name="description" content="<?php page_description();?>" />" zu entfernen, damit das Passwort nicht im Quelltext der Seite im Klartext steht.

4. Man ersetzt die Zeile wo <?php page_content(); ?> in der index.php des neuen Themes steht, mit folgendem Code:

<?php
$secretpass = $_POST["secretpass"] ;
$password = PAGE_DESCRIPTION;

		if ($secretpass=='') {  
			echo '<form name="passneeded" action="'.$_SERVER['PHP_SELF'].'" method="post">
			Please enter password: <input type="text" name="secretpass" value="" class="text" />
		    &nbsp;<input type="submit" value="Unlock!" class="submit" />
		    </form>';
		} else {
		    // password posted, is it the correct one?
			if ($password==$secretpass) {
				// correct pass, show content
				page_content();
			} else {
				// not the correct password
				echo "Not valid, sorry!";				
			};
		};
?>

5. Nun geht man in WBCE zu der entsprechenden Seite, die passwortgeschützt werden soll und ändert in den Seiteneinstellungen dieser Seite das Template zu dem neu erstellten Template, z.B. "theme_passwort" und gibt das entsprechende Passwort in die Beschreibung der Seite ein. Fertig!

Jetzt kann man natürlich noch die Ausgaben eindeutschen und eventuell statt der description die keywords als Passwort nutzen, aber das ist ja jedem selbst überlassen ...

Beitrag geändert von ice (06.02.2019 15:11:06)

Offline

Liked by:

byteworker

#5 06.02.2019 15:23:15

ice
Mitglied

Re: Einfacher Passwortschutz für Seite

Ähh, stelle gerade fest, das beißt sich mit simplepagehead. Dadurch steht das Passwort nach wie vor im Klartext im Quelltext. Also muss man das Simple Pagehead aus der index.php entfernen und die Header Sachen per Hand einbinden:

<title><?php page_title();?></title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php if (defined('DEFAULT_CHARSET')) {echo DEFAULT_CHARSET;} else {echo 'utf-8';} ?>" />
<meta name="description" content="<?php //page_description();?>" />
<meta name="keywords" content="<?php page_keywords(); ?>" />

Die descriptions sind hier auskommentiert.

Also, Achtung!

Beitrag geändert von ice (06.02.2019 16:38:11)

Offline

#6 06.02.2019 15:59:16

bernd
Developer

Re: Einfacher Passwortschutz für Seite

Nur mal eine Überlegung (absolut ungetestet):
wäre es nicht einfacher einen User anzulegen und dann ein modifiziertes LoginBox-Droplet zu verwenden

$return_value .= '<h1>'.$TEXT['LOGIN'].'</h1>'."\n";
$return_value .= '<input type="text" name="username" id="username" value="DER_USERNAME" style="display:hidden"  />'."\n";
$return_value .= '<label for="password">'.$TEXT['PASSWORD'].':</label>'."\n";
$return_value .= '<p><input type="password" name="password" id="password"/></p>'."\n";
$return_value .= '<p><input type="submit" id="submit" value="'.$TEXT['LOGIN'].'" class="dbutton" /></p>'."\n";
    	

... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#7 06.02.2019 17:23:47

ice
Mitglied

Re: Einfacher Passwortschutz für Seite

Ich kann dem nicht so folgen, wie das so funktionieren soll ...

Mich störte bei dem zusätzlichen Benutzer, dass ich Benutzername und Passwort brauchte und diesem auch noch alle Rechte entziehen muss inkl. nutzloser Benutzergruppe. Stelle ich die zu schützende Seite auf "Registriert", so bekommt man neben der Loginbox auch noch einen Passwort Rücksetzlink zu sehen. Ein Nutzer mit Ahnung kann sich trotzdem ins Backend einloggen.

Meine Nutzer könnten, wenn sie Benutzername und Passwort sehen, fälschlicherweise denken, sie könnten die Logindaten aus dem der Seite angeschlossenem phpbb Forum nehmen, was aber nicht der Fall ist.

Ich bin mit der obigen Lösung auf zweierlei Arten glücklich. Der Nutzer braucht nur ein Passwort (sicher genug) und 2. kann ich jetzt mit dieser Lösung auch noch eine Abfrage in PHP tätigen, ob dieser jemand z.B. in meinem phpbb3 Forum eingeloggt ist und entsprechend die Inhalte anzeigen. Die Umschaltung auf ein anderes Template ist einfach die Lösung ...

Beitrag geändert von ice (06.02.2019 17:25:25)

Offline

#8 06.02.2019 18:42:09

florian
Administrator

Re: Einfacher Passwortschutz für Seite

Interessant. thumb_up

Man kann das noch etwas vereinfachen, glaube ich (nicht getestet).
Zum einen braucht es dafür mMn kein Extratemplate.

Wenn der Passwortschutz nur auf bestimmten Seiten (z.B. den seiten mit der ID 23 und 42) erfolgen soll, müsste es doch eigentlich reichen, da noch ein

<?php if (PAGE_ID==23 || PAGE_ID==42) { 
...
der Login-Code wie oben... ohne das <?php ?> drumherum
...
} else {
page_content(1);
}
?>

drumherumzusetzen.

Und zum anderen: Wenn man eh schon den Code am Wickel hat und nicht für 50 Seiten 50 verschiedene Passworte vergeben will, muss man das Description-Feld ja nicht verbiegen, sondern kann doch statt PAGE_DESCRIPTION gleich das Passwort, also z.B.

$password = "Mb2.r5oHf-0t"

reinsetzen?

Beitrag geändert von florian (06.02.2019 18:43:32)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#9 06.02.2019 20:12:19

bernd
Developer

Re: Einfacher Passwortschutz für Seite

@ice:
nur zum Verständnis:
in meiner Überlegung würde der eine Benutzername direkt als value im Input-Feld übergeben.
Was natürlich an meiner 1. Überlegung Blödsinn ist - das input-Feld per css zu verstecken - da kann man natürlich gleich ein input type="hidden" dafür nehmen.
Und das mit dem Rücksetzlink: den muß man ja (im Droplet) nicht darstellen.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Fußzeile des Forums

up