Javascript, Wenn 4 Hidden-Felder "ok" = Absenden-Button anzeigen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Javascript, Wenn 4 Hidden-Felder "ok" = Absenden-Button anzeigen

    Hallo,

    ich muss gestehen, gestern Nach war es das erste mal wo ich von einem Code Alpträume hatte

    Jedenfalls, ich habe es geschafft (yeah) eine Ajax-Prüfung zu erstellen wo Live geprüft wird ob der Benutzername vorhanden ist, Passwort ok ist etc.

    Wenn jetzt alle vier Eingaben OK sind, wird eine schöne Grafik angezeigt + ein Hidden-Feld bekommt den Wert "ok".

    Ich würde jetzt gerne zusätzlich in den Eingabe-Prüfung einbauen, dass diese vier hidden-felder zusätzlich zur eigentlichen Prüfung abgefragt werden und wenn ok wird der absenden-Button eingefügt.

    Nachdem ich allerdings schon 2 Tage an den bisherigen Code sitze, wollte ich Fragen ob ihr mir bei der Lösung helfen könntet:

    Der Code:

    Code:
    var checkbenutzername = null;
    // Initialisieren
    function checkbenutzername_system(){
    	if (window.XMLHttpRequest) {
    	  checkbenutzername = new XMLHttpRequest();
    	} else if (window.ActiveXObject) {
    	  try {
    		checkbenutzername = new ActiveXObject("Msxml2.XMLHTTP");
    	  } catch (ex) {
    		try {
    		  checkbenutzername = new ActiveXObject("Microsoft.XMLHTTP");
    		} catch (ex) {
    		}
    	  }
    	}
    }
    // Statusabfrage
    function checkbenutzername_heuri() {
      if (checkbenutzername.readyState == 4) {
        var heurix = document.getElementById("rbenutzernamemeldung");
        heurix .innerHTML = checkbenutzername.responseText;
      }
    }
    // Aufrufen
    function checkbenutzernamego() {
      var pas = document.getElementById("rbenutzername").value;
      var heurix  = document.getElementById("rbenutzernamemeldung");
      heurix .innerHTML = '<img class="regimg" src="_img/loading.gif" />';
      checkbenutzername.open("GET", "_include/check.php?usernamecheck=" + pas);
      checkbenutzername.onreadystatechange = checkbenutzername_heuri;
      checkbenutzername.send(null);
    }
    // Script laden
    var heurix = checkbenutzername_system();
    Nur wo und wie baue ich jetzt die prüfung der vier Hidden-Felder ein? (Id: hidden1, hidden2, hidden3, hidden4 == ok, dann im span mit der id: button, anzeigen = [CODE])

    Vor allem muss das ja erst geprüft werden nachdem das hidden-feld auf ok gesetzt wurde (was dieses Script ja macht)
    Zuletzt geändert von webtaste6659; 15.11.2010, 01:30.

  • #2
    Hallo,

    Fragestellung nicht nachvollziehbar. Hast du ein Onlinebeispiel?

    Zur Idee an sich:

    Dass man in jeden JS-Code an beliebiger Stelle eingreifen und sich alles was passiert ansehen und Variablen beliebig verändern kann, weißt du ja sicherlich. Demnach kannst du auch noch 4 oder 20 oder 100 weitere hidden-Felder einbauen und dein Anmeldescript lässt sich trotzdem ganz einfach umgehen.

    Logins müssen immer auf dem Server erfolgen und Berechtigungen müssen immer auf dem Server gegengeprüft werden.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hier die aktuelle Version:

      Artikito.de - Artikel von Nutzern für Nutzer.

      Wie gesagt, ich möchte gerne den obigen javascript-Code so modifizieren, dass wenn die hidden-felder (id) 1,2,3,4 = ok sind der folgende Code angezeigt wird im span mit der ID "regbuttonswitch"

      Code:
      <div><input class="regsubmit" type="submit" value="" /></div>
      Die Eingabe werde ich insgesamt 2x prüfen, einmal bei der Eingabe direkt und einmal ganz normal via PHP bevor die Daten in der Datenbank gespeichert werden um eine Manipulation zu verhindern.

      Um ehrlich zu sein finde ich die "Live-Anzeige" ob die Daten ok sind und das aufleuchten vom "Jetzt registrieren"-Knopf einfach nur schick :P DIe Hidden-Felder sollen somit keine "Sicherheitsprüfung" sein.
      Zuletzt geändert von webtaste6659; 15.11.2010, 14:29.

      Kommentar


      • #4
        Zitat von webtaste6659 Beitrag anzeigen
        Wie gesagt, ich möchte gerne den obigen javascript-Code so modifizieren, dass wenn die hidden-felder (id) 1,2,3,4 = ok sind der folgende Code angezeigt wird im span mit der ID "regbuttonswitch"
        Code:
        <div><input class="regsubmit" type="submit" value="" /></div>
        Die einfachste Methode ist
        PHP-Code:
        document.getElementById('regbuttonswitch').innerHTML '<div><input ... /></div>' 
        Auch wenn man keine Blockelemente in Inlineelemente packt.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von Kropff Beitrag anzeigen
          Die einfachste Methode ist
          PHP-Code:
          document.getElementById('regbuttonswitch').innerHTML '<div><input ... /></div>' 
          Auch wenn man keine Blockelemente in Inlineelemente packt.
          Und wo passiert das hier?
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            na im span mit der ID regbuttonswitch.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Ach, das hab ich überlesen. Die Anforderung war so simpel und der Code –*so dachte ich –*sagt den Rest. War ja klar, dass die Hälfte fehlt …*
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Erstmal Danke für die Antworten! Ich habe versucht den Javascript-Code zu modifizieren und auch in Firebug nachgekuckt ob alle Hidden-Felder auf ok sind (sind sie) aber irgendwie ändernt sich mein Registrieren-Knopf einfach nicht.

                Code:
                var checkbenutzername = null;
                // Initialisieren
                function checkbenutzername_system(){
                	if (window.XMLHttpRequest) {
                	  checkbenutzername = new XMLHttpRequest();
                	} else if (window.ActiveXObject) {
                	  try {
                		checkbenutzername = new ActiveXObject("Msxml2.XMLHTTP");
                	  } catch (ex) {
                		try {
                		  checkbenutzername = new ActiveXObject("Microsoft.XMLHTTP");
                		} catch (ex) {
                		}
                	  }
                	}
                }
                // Statusabfrage
                function checkbenutzername_heuri() {
                  if (checkbenutzername.readyState == 4) {
                    var heurix = document.getElementById("rbenutzernamemeldung");
                    heurix .innerHTML = checkbenutzername.responseText;
                [COLOR="Red"]	checkbenutzername_heuri.onreadystatechange = checkhidden;
                  }
                }
                
                // Hidden-Feld abfrage
                function checkhidden(){
                	var hiddenone  = document.getElementById("1");
                	var hiddentwo  = document.getElementById("2");
                	var hiddenthree  = document.getElementById("3");
                	var hiddenfour  = document.getElementById("4");
                    if(hiddenone == 'ok' & hiddentwo == 'ok' & hiddenthree == 'ok' & hiddenfour == 'ok'){
                	document.getElementById('regbuttonswitch').innerHTML = '<div><input class="regsubmit" type="submit" value="" /></div>';
                	}
                }[/COLOR]
                
                // Aufrufen
                function checkbenutzernamego() {
                  var pas = document.getElementById("rbenutzername").value;
                  var heurix  = document.getElementById("rbenutzernamemeldung");
                  heurix .innerHTML = '<img class="regimg" src="_img/loading.gif" />';
                  checkbenutzername.open("GET", "_include/check.php?usernamecheck=" + pas);
                  checkbenutzername.onreadystatechange = checkbenutzername_heuri;
                  checkbenutzername.send(null);
                }
                // Script laden
                var heurix = checkbenutzername_system();
                Zuletzt geändert von webtaste6659; 15.11.2010, 23:55.

                Kommentar


                • #9
                  Wie schon erwähnt ist der Code nicht nachvollziehbar oder du hast wirklich vergessen, die Funktionen auch aufzurufen. Soweit ich das sehe, wird nur die erste überhaupt benutzt. Die Namenswahl ist übrigens grausam kryptisch.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Der Text, den Sie eingegeben haben, besteht aus 16763 Zeichen und ist damit zu lang. Bitte kürzen Sie den Text auf die maximale Länge von 10000 Zeichen.

                    Ok, der Versuch den kompletten Code zu posten ist somit gescheitert xD

                    Naja, dann werde ich wohl noch ein paar Nächte Alpträume haben, trotzdem Danke für eure Zeit
                    Zuletzt geändert von webtaste6659; 16.11.2010, 00:10.

                    Kommentar


                    • #11
                      hiddenone wird niemals 'ok' sein, denn getElementById() gibt keine Strings zurück. Firebug!

                      Kommentar


                      • #12
                        Du nimmst doch wohl nicht ernsthaft an, dass sich hier jemand solch eine Masse an Code anschauen möchte ...?

                        Ein Online-Beispiel wäre vermutlich viel aussagekräftiger.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Es verlangt niemand, dass du den kompletten Code postest, nur, dass du uns erklärst, was überhaupt passieren sollte, welche Funktion wann wie aufgerufen wird und an welcher Stelle es scheitert. Du wirst ja sicher selbst schon einmal nachgesehen haben, wo es klemmt. Ich kann derzeit keinen Zusammenhang zwischen dem Problem und dem Code erkennen.

                          Dass der value des Buttons leer ist, könnte eine mögliche Ursache sein, dass man ihn nicht sieht, es sei denn er ist per CSS mit fester Breite und Hintergrundbild ausgestattet. Aber genau sowas könntest du uns ja netterweise mal erklären. Ich habe es mir jetzt 10min lang erfolglos angesehen und würde vermutlich anderthalb Stunden brauchen, um dort komplett durchzusteigen und zu kapieren, was du eigentlich vorhast, weil du es von alleine anscheinend nicht erläutern willst.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Danke das mit den "kein string" teste ich direkt mal

                            Kommentar


                            • #15
                              (Hat sich erledigt wegen unsichtbarer Änderung des TO)
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X