Frage von timi042, 66

html passwort (denkblockade)?

Hallo, und zwar versuche ich grade etwas mehr über html zu erfahren. Jetzt wollte ich aus SPaß ein Passwort für meine html Seite einrichten. dies Funktioniert aber nicht ganz. Ich habe grade eine denkblockade und komme nicht weiter. Vielleicht kann mir jemand von euch helfen, ihr seht den Fehler ganz bestimmt sofort mit eurem geschulten Auge :)

Danke!

<body>
        <script> alert("Hallo Welt") </script>
        <script> alert(222222222) </script>
        
        <script><!--
    var password= "hax0r";
    
    password=prompt("Please enter the Password!","");
    if (password=="skriptkid") {
    
    window.location.href="1.html";
    }
    else (password != skriptkid) {
    
    }
    //--></script>
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von perhp, 21

Wieso setzt du zu erst die variable password auf hax0r, das spielt doch keine Rolle, wenn sowieso nur die Eingabe zählt, was er macht.

Probier mal das hier (habe es getestet und es funktioniert, du musst jetzt aber noch beim klick auf abbrechen die schleife verlassen.:

var pw = "";

while(pw !=="skriptkid"){

pw = prompt("Please enter your password");

}

Kommentar von timi042 ,

Danke es funktioniert. Super!

Könntest du mir auch sagen warum deine Variante funktioniert und meine nicht? Möchte ja auch was dabei lernen aus meinen Fehlenr :)

Kommentar von perhp ,

War dein Code dieser?

var password;

while (password!="skriptkid"){
     password=prompt("Please enter the Password!","");
}

if (password=="skriptkid") {
    window.location.href="1.html";
}

Wenn ja, dann kannst du ja schon selbst in der Konsole sehen, welchen Fehler dir der Browser ausgibt.

Nämlich dieser Fehler kommt: ReferenceError: password is not defined

und das bedeutet nichts anderes, dass du zu erst die variable password definieren musst, bevor du darauf zugreifen willst.

ps: diese Passwort-Funktion würde ich nicht wirklich auf einer Webseite verwenden, da auf diese Weise das Passwort nicht sicher ist. Für nur Testzwecke ist es in Ordnung.

Kommentar von timi042 ,

Also hätte ich nur bei var password = "skriptkid";
machen müssen?

Ich nutze Notepad ++ weiß nicht wo dort die Console ist.

Und keine Sorge das ist nur eine Testseite um etwas besser html css und (vor allem) java script zu lernen :)

Was wäre die sicherste Methode?

Kommentar von perhp ,

Du scheinst dort etwas falsch zu verstehen. Mit Konsole meine ich nicht die deines Editors (dort schreibst du nur deinen Code), sondern die Konsole des Browsers (Mit F12 öffnest du sie und dort werden dir auch andere Fehler angezeigt). Dort debuggt man nämlich Webanwendungen und vorallem mit JavaScript wird dir keine andere Möglichkeit übrig bleiben als debuggen zu lernen. (Falls du den Begriff debuggen nicht verstehst, brauchst du ihn nur googeln, das findest du dort zu genüge).

Die sicherste Methode wäre das wohl mit einer Datenbank zu machen, wo du das Passwort von einem Server holst.

Kommentar von perhp ,

ps: ja das war dein Fehler. Du darfst allerdings nicht

var password = "skriptkid";

machen, da password ja die Eingabe deines Benutzers ist und er sonst automatisch das richtige passwort schon hätte. Einfach var password; machen, dann müsste es funktionieren, da du dann die Variable deklariert hast.

Antwort
von DustFireSky, 47

Den Else Teil kannst du Dir schenken, zu mal dieser eh falsch ist, denn dieser steht nicht in Anführungszeichen, wodurch nach der variable skriptkid gesucht wird, die aber nicht existiert. Damit es als String interpretiert wird muss das in "" stehen.

War das jetzt der ganze Inhalt der Datei, den du gepostet hast ? Wenn ja, fehlt da jede Menge!

Wird das Prompt(Eingabefenster) überhaupt angezeigt, wenn du die Seite aufrufst ?

Kommentar von timi042 ,

Nein das war nur der Ausschnitt aus dem Quelltext.
Es ging mir ja nur um die Problemstelle.

Also müsste es so richtig sein:


<body>
<script> alert("Hallo Welt") </script>
<script> alert(222222222) </script>

<script><!--
var password= "hax0r";

password=prompt("Please enter the Password!","");
if (password=="skriptkid") {

window.location.href="1.html";
}
else (password != "skriptkid") {

}
//--></script>



Aber da fehlt doch was, ich komme grade echt nicht weiter. 
Wie richte ich es so ein das wenn das Passwort falsch ist ich erneut gefragt werde? Mit einer while schleife? 

Kommentar von DustFireSky ,

while (password!="skriptkid"){
password=prompt("Please enter the Password!","");
}

if (password=="skriptkid") {
window.location.href="1.html";
}

Kommentar von timi042 ,

Dieser Code funktioniert bei mir nicht. Trotz des richtigen passworts (skriptkid) fragt er immer wieder nach dem Passwort.
kann der Fehler bei window.location.href="1.html" liegen?

Keine passende Antwort gefunden?

Fragen Sie die Community