1// neues Konto lokal anlegen 2function registriereBenutzer() { 3 const emailFeld = document.getElementById("login-email"); 4 const passFeld = document.getElementById("login-password"); 5 const status = document.getElementById("login-status"); 6 7 const email = (emailFeld.value || "").trim().toLowerCase(); 8 const pass = (passFeld.value || "").trim(); 9 10 if (!email || !pass) { 11 alert("Bitte E-Mail-Adresse und Passwort eingeben."); 12 return; 13 } 14 15 const kontoKey = "konto_" + email; 16 17 if (localStorage.getItem(kontoKey)) { 18 alert("Für diese E-Mail-Adresse ist hier im Browser bereits ein Konto angelegt."); 19 return; 20 } 21 22 // Achtung: nur Demo â Passwort wird im Klartext im Browser gespeichert. 23 // Für echte Sicherheit brauchst du ein Backend mit Hashing etc. 24 const kontoDaten = { email, passwort: pass }; 25 try { 26 localStorage.setItem(kontoKey, JSON.stringify(kontoDaten)); 27 } catch (e) { 28 console.error(e); 29 alert("Fehler beim Speichern des Kontos in localStorage."); 30 return; 31 } 32 33 aktuellerBenutzer = email; 34 if (status) { 35 status.textContent = "Konto angelegt und angemeldet als: " + email; 36 status.style.color = "#2b7a0b"; 37 } 38 39 if (typeof aktualisiereKonfigListe === "function") { 40 aktualisiereKonfigListe(); 41 } 42 43 // HIER könnte später der Aufruf an einen Server hin, 44 // der die E-Mail-Adresse an [email protected] meldet, z.B.: 45 // 46 // fetch("https://deine-domain.de/api/neuer-kunde", { 47 // method: "POST", 48 // headers: { "Content-Type": "application/json" }, 49 // body: JSON.stringify({ email }) 50 // }).catch(console.error); 51 // 52 // Ohne Server kann aus dem Browser direkt KEINE E-Mail verschickt werden. 53 54 alert("Kundenkonto wurde lokal in diesem Browser angelegt."); 55} 56 57function loginBenutzer() { 58 const emailFeld = document.getElementById("login-email"); 59 const passFeld = document.getElementById("login-password"); 60 const status = document.getElementById("login-status"); 61 62 const email = (emailFeld.value || "").trim().toLowerCase(); 63 const pass = (passFeld.value || "").trim(); 64 65 if (!email || !pass) { 66 alert("Bitte E-Mail-Adresse und Passwort eingeben."); 67 return; 68 } 69 70 const kontoKey = "konto_" + email; 71 const raw = localStorage.getItem(kontoKey); 72 73 if (!raw) { 74 alert("Für diese E-Mail-Adresse ist hier im Browser noch kein Konto angelegt. Bitte zuerst 'Kundenkonto anlegen' benutzen."); 75 return; 76 } 77 78 let konto; 79 try { 80 konto = JSON.parse(raw); 81 } catch (e) { 82 console.error(e); 83 alert("Konto-Daten sind beschädigt oder konnten nicht gelesen werden."); 84 return; 85 } 86 87 if (!konto || konto.passwort !== pass) { 88 alert("Passwort stimmt nicht."); 89 return; 90 } 91 92 aktuellerBenutzer = email; 93 if (status) { 94 status.textContent = "Angemeldet als: " + email; 95 status.style.color = "#2b7a0b"; 96 } 97 98 if (typeof aktualisiereKonfigListe === "function") { 99 aktualisiereKonfigListe(); 100 } 101} 102 103 104
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.