Ich habe für eine umfangreiche Website in einem separaten Ordner eine 2. Website angehängt die einen Firmenbereich zeigt der geschützt werden soll.
Dazu habe ich dann auf der offenen Seite einen einfachen Login eingerichtet, in dem die Nutzer einen Benutzernamen und ein Passwort eingeben müssen.
Zuerst habe ich das mit htaccess geregelt, aber der hässliche graue Banner ging mir auf den Geist. Also habe ich das mit php geregelt, über ein Login das ich direkt in eine Seite vom offenen Bereich eingebaut habe. Das Login wird über ein check.php (Anhang) geregelt. Was mir nicht gefällt, ist dass ich beim absenden der Daten keinen direkten Zugang zur Seite bekomme. Außerdem will ich nach 3 falschen Versuchen eine extra denied.php Seite einblenden die Informationen gibt wo man Passwort und Benutzer herbekommt.
Hier der Code:
<?php
// Passwortschutz mit PHP
if ($Benutzer == "" or $Kennwort == "")
{
echo "Bitte alle Felder ausfüllen!";
}
else if($Benutzer == "Bereich" and $Kennwort == "Passwort")
{
echo 'Herzlich Willkommen - Mit einem Klick sind Sie am Ziel!';
Danke für den Hinweis. Den Header hab ich auch schon probiert.
Aber ohne Erfolg.
[php]<?php
// Passwortschutz mit PHP
if ($Benutzer == „“ or $Kennwort == „“)
{
echo „Bitte alle Felder ausfüllen!“;
}
else if($Benutzer == „Bereich“ and $Kennwort == „Passwort“)
{
echo header(„Location: index_neu.php“);
}
else
{
echo ‚<a href=„seminare.php#top“?>Sorry, bitte noch mal versuchen!</a?>‘;
}
?>[/php]Vermutlich weil ich ihn als Echo benutze. Aber sicher bin ich mir nicht.
Ich habe auch schon den ganzen Pfad eingegeben. Hat nichts genutzt.
So langsam geb ich das nun auf und mache das mit Javascript, was mir sehr zuwider ist.
header() benutzt man ohne echo. Wenn es dann noch nicht klappt, hast du eine Ausgabe vor der Funktion. In diesem Falle könnte man output caching benutzen.
Vielen Dank für die ausführliche und umfassende Antwort.
Wenn ich schon Beispiele vorgebe dann wäre es doch nützlich sie auch zu benutzen.
Aber warum soll das hier anders sein als sonstwo.
Trotzdem gnädigsten Dank für die „Hilfe“ auf dass die Erleuchtung über euch komme.
ein wirklich verlässlicher schutz ist hier noch nicht gegeben.
wenn du einen guten php entwickler suchst (beruflich) kannst du dich gerne mal melden, vielleicht werden wir uns ja einig.
Natürlich ist das kein sicherer Schutz. Immerhin kann die neue Seite (index_neu.php) auch direkt aufgerufen werden. Man ist somit nicht mehr abhängig von der überprüfung.
Aber unabhängig davon versuchen wir hier das Problem zu lösen. Soweit wir das beurteilen können liegt es an dem echo…
wie mein vorredner schon gesagt hat, muss das echo weg
damit das ganze etwas übersichler ist kannst du es auch so formulieren:
[php]
if(condition)
die(‚bitte mal überprüfen ob alles eingegeben wurde‘);
if(condition)
die(‚du hast hier nichts zu suchen‘);
echo ‚du bist eingeloggt‘;
[/php]
PHP: die - Manual / PHP: exit - Manual sind zwar sehr sture php funktionen, dass verwendete muster jedoch benutzt man später jedoch auch gerne in der objekt orientierten welt, also macht es sinn wenn du dich direkt an sowas gewöhnst.