Passwortabfrage - Drücken der "Abbrechen" Taste

  • Hallo liebes Forum,


    ich experimentiere mit einer Passwortabfrage. Beim Drücken von "Abbruch" soll die Schleife verlassen werden und wegen mir "Programmabbruch" ausgegeben werden. Mein Code:



    <script type="text/javascript">
    var versuche = 0;
    var rest, code, eingabe;


    do
    {
    versuche++;
    rest = 4 - versuche;
    eingabe = prompt("Bitte PIN eingeben\nSie haben noch " + rest + " Versuche");
    if(eingabe == 3365)
    alert("Sie haben Zugang");
    else if(eingabe == null)
    break;
    else
    alert("Zugang verweigert");
    }
    while(versuche < 3 && eingabe != 3365);
    if(versuche = 3 && eingabe != 3365)
    alert("Sie haben die maximale Anzahl an Versuchen erreicht");
    else if(versuche <= 3 && eingabe == null)
    alert("Programmabbruch");
    else
    alert("Viel Spaß");
    </script>




    Beim Drücken von "Abbrechen" stellt sich nicht das Gewünschte ein. Was mache ich falsch?


    Grüße,


    Michael

  • Was mache ich falsch?


    Alles. Sorry, ist aber so.
    Eine Passwortabfrage - also die Prüfung auf das richtige Passwort - gehört nicht in den Browser - wie hier im Fall Javascript.
    Javascript ist für jeden einsehbar.
    Mit while/do-while -Schleifen sollte man sowas auch nicht machen.

  • Trotz den korrekten Anmerkungen von cottton möchte ich kurz die Logik in deinem Programm ansprechen.


    Zunächst ein mal verwendest du eine while-Schleife. Das würde auch Sinn machen, wenn du nicht die Versuche beschränken würdest. Da du alles nur x mal ausführen möchtest, bietet sich hier die for-Schleife an.


    Du solltest die einzelnen Programmabschnitte, die ausgeführt werden wenn der Benutzer eine bestimmte Eingabe tätigt, nicht HINTER der Schleife kontrollieren sondern IN der Schleife.


    Ein simples Beispiel:



    Interessant und eventuell neu für dich sind hier nur break und continue. Break bricht die komplette Schleife ab, continue springt zum nächsten Durchlauf der Schleife. Vielleicht kannst du versuchen die Logik nachzuvollziehen und für dich umzusetzen.

  • ;) Nein, habe ich nicht.


    War eigentlich nur gedacht als Experiment für meinen Lernprozess.
    Ich fürchte, dass ich mich hierfür noch in...... PHP?!?........einarbeiten sollte?


    Grüße,
    Michael

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!