Die URLs müssen in Anführungszeichen gesetzt werden
function neuerversuch()
{alert("no");
window.location.href = 'holmitschutz.php?a=1';}
function erfolgreich()
{alert("yes");
window.location.href = 'holedatei.php' ; }
Ebenso Username und Passwort:
if ($_REQUEST["usereingabe"] == 'XXX' && $_REQUEST["passwordeingabe"]== 'YYY')
Und du solltest nicht eine komplette HTML-DAtei includen, da die Gesamtdatei andernfalls über zwei heads, bodies etc. verfügt
Nachtrag:
Ich würde das Script in dem derzeitigen Zustand übrigens nicht verwenden, da die Ziel-URL aus dem Quelltext aus der Funktion erfolgreich() auslesbar ist - ein Angreifer kann den Passwortschutz so relativ leicht umgehen! Zumindest solltest du die Funktionsdefinitionen im head entfernen und die Primär-Funktionen stattdessen direkt in das if - elseif Konstrukt einbauen:
<?PHP
if ($_REQUEST["usereingabe"] == 'XXX' && $_REQUEST["passwordeingabe"]== 'YYY') {$_SESSION["eingeloggt"]=1; $_SESSION["sessionuser"] = $_REQUEST["usereingabe"]; $_SESSION["sessionpassword"] = $_REQUEST["passwordeingabe"] ;
?><script language="javascript" type="text/javascript">alert("yes");
window.location.href = 'holedatei.php' ;</script><?PHP
}
elseif (! empty($_REQUEST["usereingabe"]))
{?><script language="javascript" type="text/javascript">alert("no");
window.location.href = 'holmitschutz.php?a=1';</script><?PHP
} ?>
Oder noch besser, du verwendest eine serverseitige Weiterleitung, die über die Funktion header() ausgegeben wird.
Diese Lösung mit der WEiterleitung ist allerdings auch dann nur solange sicher wie die ungeschützte Datei holedatei.php nicht bekannt ist. Rudys Rundum-Lösung wäre von daher noch vorzuziehen