mreske
Goto Top

PHP: Automatische Weiterleitung bei falscher Passworteingabe

Hallo,

ich möchte bei einer FALSCHEN Passworteingabe auf die Seite "fehler1.html" / "fehler2.html" bzw. "fehler3.html" weitergeleitet werden.

Momentan zeigt mir der Code eine Fehlermeldung an (siehe Zeile 42)
Stattdessen soll auf die URL in Zeile 6 ("Notsuccess") weitergeleitet werden.
Alternativ wäre eine Inputbox, in der ein Alternatives Passwort eingegeben werden soll, klasse (was wohl nur mit Javascript geht?)

Kurz zur Erklärung:
Es soll für eine Schnitzeljagt sein, die mit ein paar Fragen auf meiner Website beginnt:

01. Frage 1 (steht auf der index.html)
-> Bei richtiger Antwort gehe zu Frage2.php
-> Bei falscher Antwort gehe zu fehler1.html (oder öffne eine Inputbox)
Auf dieser Seite (oder inputbox) soll ein Passwort eingegeben werden, dass die Kinder aus dem 3 Stock des Hauses besorgen müssen

02. Frage 2 (= Frage2.php)
-> Bei richtiger Antwort gehe zu Frage3.php
-> Bei falscher Antwort gehe zu fehler2.html (oder öffne eine Inputbox)
Auf dieser Seite (oder Inputbox) soll ein Passwort eingegeben werden, dass die Kinder aus dem 4 Stock des Hauses besorgen müssen

03. Frage 3 (= Frage3.php)
-> Bei richtiger Antwort gehe zur Lösung.php
-> Bei falscher Antwort gehe zu fehler3.html (oder öffne eine Inputbox)
Auf dieser Seite (oder inputbox) soll ein Passwort eingegeben werden, dass die Kinder aus dem 5 Stock des Hauses besorgen müssen

Ich bin totaler Anfänger in PHP und würde mich über Eure Hilfe sehr freuen.

Hier mein momentaner code:

<?php
// Definiert Konstanten für das Script
define('MD5_ENCRYPT', false); // Aktiviert Verschlüsselung für Passwort. Wenn "true" gesetzt, müssen Passwörter von $usrdata md5-verschlüsselt vorliegen. Standard: false  
define('SUCCESS_URL', 'private.php'); // URL, zu welcher nach erfolgreichen Login umgeleitet wird.  
define('NOTSUCCESS_URL', 'fehler.html'); // URL, zu welcher nach erfolglosem Login umgeleitet wird.  
define('LOGIN_FORM_URL', 'index.html'); // URL mit Anmeldeformular  
// Array mit Benutzerdaten: Besteht aus Array-Elementen mit paarweisen Benutzernamen und Passwörtern
$usrdata = array(

	array(
		"usr" => "paul",  
		
	),
	array(
		"usr" => "benutzername_fur_person",  
			)
	/* ... */
);

header("Content-Type: text/html; charset=utf-8"); // Melde Browser die verwendete Zeichenkodierung  

// PHP-Session starten und aktuellen Stand abfragen
session_start();
$_SESSION['logged_in'] = (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) ? true : false;  
$_SESSION['usr'] = (isset($_SESSION['usr'])) ? $_SESSION['usr'] : '';  

$error = array();
if(!isset($_POST['login'])){  
	header('Location: '.LOGIN_FORM_URL);  
}else{
	$usr = (!empty($_POST['user']) && trim($_POST['user']) != '') ? $_POST['user'] : false;  
	
	if(!$usr){
		if(count($error) == 0)
			$error = "Bitte geben Sie Benutzername und Passwort ein.";  
	}else{
		$pwd = (MD5_ENCRYPT === true) ? md5($pwd) : $pwd; // Passwort eingabe MD5-encrypten, falls Option gesetzt ist
		foreach($usrdata as $ud){ // Benutzer-Liste durchlaufen und je mit Formular-Eingaben vergleichen
			if($usr != $ud['usr'] ){  
				if(count($error) == 0)
					$error = "Benutzername und/oder Passwort nicht korrekt.";  
					
			}else{
				$_SESSION['logged_in'] = true;  
				$_SESSION['usr'] = $usr;  
				header('Location: '.SUCCESS_URL);  
			}
		}
	}
}

?><!doctype html>
<html>
	<head>
		<meta name="content-type" content="text/html; charset=utf-8" />  
		<title>Login-Fehler</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">  
<!--
body {
	background-image: url(images/bild.gif);
	background-color: #FFFF99;
	background-repeat: no-repeat;
}
-->
</style></head>
	<body>
		<ul>
		<?php
		foreach($error as $out){
			?>
			<li><?php echo $out; ?></li>
			<?php
		}
		?>
		</ul>
		<p><a href="<?php echo LOGIN_FORM_URL; ?>">Zur Anmeldeseite</a></p>  
	</body>
</html>
		

Vielen Dank

Content-Key: 270985

Url: https://administrator.de/contentid/270985

Printed on: April 20, 2024 at 04:04 o'clock

Member: StefanKittel
StefanKittel May 03, 2015 at 14:42:08 (UTC)
Goto Top
Hallo,

das einfachste wäre eine Weiterleitung mittels 302 Fehler.
Siehe: http://www.suchmaschinen-doktor.de/optimierung/redirect.html

Wichtig ist, dass Du davor nichts ausgibst.
Auch keinen Header oder so.

Alternativ kannst Du das ganz auf einer Seite machen und je nach Zustand verschiedene Seiten ausgeben.
Am einfachsten per Include

Stefan