Erst hat es funktioniert, nun wieder nicht. Merkwürdige Sache!
Fest steht, dass in der Schleife die Variable readString zusammengesetzt wird. Das muss von der Prüfung des Passwortes abgekoppelt werden. Zurzeit läuft das Ding in einer Schleife und macht nach jedem Zeichen den Test, ob das Passwort schon stimmig ist. Das geht nicht. Warum nach mehrfachen Versuchen meine Änderungen auch nichts mehr bringen, zuvor aber schon, ist auch ein Rätsel. Daher kann man das erst mal vergessen. Ich hatte nur Codeschnipsel aufgeführt und die Änderungen in Rot, damit man sieht wo die im Quelltext stehen.
- - - Aktualisiert - - -
Dieses Konstrukt:
Code:
//read char by request
if (readString.length() < TOKLEN) {
//store characters to string
readString += c;
Serial.println(c);
}
müsste erstmal geändert werden in das:
Code:
//read char by request
while (readString.length() < TOKLEN) {
//store characters to string
readString += c;
Serial.println(c);
}
damit der String komplett gelesen wird.
Und hier erkennt man das erste Problem, dass sich nämlich das Lesen der Zeichen einzig nach TOKLEN richtet. TOKLEN muss daher zuerst die Länge haben, die das vom Browser übermittelte Passwort eben hat.
Die Schwierigkeit daran ist, dass die Abarbeitung des gesamten Input-Strings (der vom Browser kommt) Zeichen um Zeichen geschieht, in einer Schleife, wo dann auch auf '\n' geprüft wird und ob das Passwort richtig ist. Und das ist alles ineinander verschachtelt.
Lesezeichen