chrisoberhausen: Wo ist der Fehler???

Hallo!
Ich habe folgendes Problem. Ich wollte eine Passwort Abfrage programmieren und als sie fertig war sagt der Browser(IE 6.0)das in Zeile 16 ein Fehler wäre! Hier 16+17!! Ich finde einfach den Fehler nicht helft mir BITTE!!

<HTML>
<head>
<title></title>
<script language="Text/JavaScript">

function ueberpruefen() {
alert ("Es funkt");}

if (mitglied=pass) document.write("OK");
</script>
</head>
<body>
<form>
<input type="text" name="mitglied" value=""><br>
<input type="password" name="pass" value=""><br>
<input type="button" name="bestaetigung" value="LogIN" onClick="ueberpruefen();">
</form>
</body>
</HTML>

  1. Halli,

    Ich habe folgendes Problem. Ich wollte eine Passwort Abfrage programmieren und als sie fertig war sagt der Browser(IE 6.0)das in Zeile 16 ein Fehler wäre! Hier 16+17!! Ich finde einfach den Fehler nicht helft mir BITTE!!

    <HTML>

    1. Doctype fehlt

    <head>
    <title></title>
    <script language="Text/JavaScript">

    2. Attribut type fehlt.

    function ueberpruefen() {
    alert ("Es funkt");}

    if (mitglied=pass) document.write("OK");

    3. mitglied ist eine nicht initialisierte Variable (Du meinst document.forms[0].mitglied)
    4. = ist der Zuweisungsoperator, nicht der Vergleichsoperator
    5. pass ist eine nicht initialisierte Variable (Du meinst document.forms[0].pass)

    </script>
    </head>
    <body>
    <form>

    6. form muß als Inhalt ein block-Element haben, erst darin dürfen die input-Elemente vorkommen

    <input type="text" name="mitglied" value=""><br>
    <input type="password" name="pass" value=""><br>
    <input type="button" name="bestaetigung" value="LogIN" onClick="ueberpruefen();">
    </form>
    </body>
    </HTML>

    cu,
    Robert

  2. Hallo,

    <HTML>
    <head>
    <title></title>
    <script language="Text/JavaScript">

    So sollte das nicht aussehen. <script type="text/javascript"> wäre richtig

    function ueberpruefen() {
    alert ("Es funkt");}

    ^
    Die gescheifte Klammer kommt da nicht hin.

    if (mitglied=pass) document.write("OK");

    '=' ist ein Zuweisungsoperator, '==' ein Vergleichsoperator. Es existiert bei dir weder eine Variable namens 'mitglied' noch eine namens 'pass'. Diese Zeile ist kompletter Unsinn.

    Hier käme die geschweifte Klammer eigentlich hin.

    </script>
    </head>
    ...

    Eine Passwortabfrage mit Javascript realisieren zu wollen, ist an sich immer unsinnig. Deine Variante (bzw. so, wie du sie dir vorgestellt hast) macht gar keinen Sinn, weil jeder einfach in den Quelltext schauen kann und dort das Passwort im Klartext findet.

    Gruß, Jan

  3. Hallo,

    <script language="Text/JavaScript">

    versuch mal
    <script language="JavaScript" type="text/javascript">

    if (mitglied=pass) document.write("OK");

    und diese Zeile sollte auskommentiert werden, da die Variablen unbekannt sind. Soll da wirklich eine Zuweisung (=) oder ein Vergleich (==) hin?

    Gruß,     Jürgen

  4. Hallo!
    Ich habe folgendes Problem. Ich wollte eine Passwort Abfrage programmieren und als sie fertig war sagt der Browser(IE 6.0)das in Zeile 16 ein Fehler wäre! Hier 16+17!! Ich finde einfach den Fehler nicht helft mir BITTE!!

    Das Script strotzt nur so vor Fehlern, mal anfangen...

    <script language="Text/JavaScript">

    Es heisst: <script language="JavaScript"> - ohne Text/ das wäre der Mime-Type...

    function ueberpruefen() {
    alert ("Es funkt");}

    weil ihr alle so beschissene klammerführung habt, deshalb ist der fehler vorprogrammiert. Schreib es mal so:
    function ueberpruefen()
    {
      alert ("es funkt");
    } <-- an dieser Stelle ist die Funktion aus! Ergo: falsche Klammerung
    if (mitglied=pass) document.write("OK");
    woher hast du denn mitglied? wenn schon, dann ist das document.formname.mitglied, was allein schon daran scheitert, dass dein FORM keinen Namen hat. Das Gleiche gilt für PASS.
    Dann überprüft man im IF mit == nicht mit = (noch nie programmiert, oder?)

    if (mitglied=pass) document.write("OK");

    </script>
    </head>
    <body>
    <form>
    <input type="text" name="mitglied" value=""><br>
    <input type="password" name="pass" value=""><br>
    <input type="button" name="bestaetigung" value="LogIN" onClick="ueberpruefen();">

    Zur Sicherheit kansnt du vor den Funktionsaufruf noch ein "javascript:" schreiben, also onClick="javascript:ueberpruefen()"

    So, nun die Musterlösung:
    <html>
    <head>
    <script language="JavaScript">
    function ueberpruefen()
    {
      alert ("Skript-beginn");
      var mg=document.form1.mitglied.value;
      var pwd=document.form1.pass.value;
      if (mg==pwd)
        { alert ("OK"); }
      else
        { alert ("Not OK"); }
      alert ("Skript Ende");
    }
    </script>
    </head>
    <body>
    <form name="form1">
      <input type="text" name="mitglied" value=""><br>
      <input type="password" name="pass" value=""><br>
      <input type="button" name="bestaetigung" value="LogIN" onClick="javascript:ueberpruefen();">
    </body>
    </html>

    P.S.: Was ist denn das für ein beschissener Passwort-Schutz, bei dem der Benutzername und Passwort gleich sind (abgesehen davon, dass jeder Trottel deinen Passwortschutz in 5 Sek. durchschaut hat)?

    Na ja, vielelicht bist etwas schlauer geworden. Man lerne: Richtig Klammern setzen hilft und zuerst nachdenken, was man eigentlich tut hilft noch mehr...

    Michael H.

    1. Hallo Michael,

      Zur Sicherheit kansnt du vor den Funktionsaufruf noch ein "javascript:" schreiben, also onClick="javascript:ueberpruefen()"

      ich glaube das 'javascript:' darf man an dieser Stelle nicht verwenden. Was außer Javascript sollte denn in einem Eventhandler stehen?
      Das 'javascript:' kannst du z.B im href-Attribut verwenden, um kenntlich zu machen, daß hier kein normaler Verweis sondern ein Javascript-Aufruf folgt.

      Gruß, Jan