this is my Servlet:
String alter = request.getParameter("alter");
String email = request.getParameter("email");
String telefon = request.getParameter("telefon");
String passwordNeu = request.getParameter("passwordNeu");
String passwordWdh = request.getParameter("passwordWdh");
String agb = request.getParameter("checkbox1");
String datenschutzbestimmungen = request.getParameter("checkbox2");
FehlerManager manager = new FehlerManager();
boolean alterKorrekt = manager.alterKorrekt(alter);
boolean mailKorrekt = manager.mailKorrekt(email);
boolean telefonKorrekt = manager.telefonKorrekt(telefon);
Benutzer benutzer = (Benutzer) session.getAttribute("benutzer");
if(agb != null && datenschutzbestimmungen != null && alterKorrekt && mailKorrekt &&
telefonKorrekt && passwordNeu.equals(passwordWdh)) {
message += "Alle Eingaben korrekt - Benutzer angelegt.";
benutzer.setAlter(alter);
benutzer.setEmail(email);
benutzer.setTelefon(telefon);
benutzer.setPasswort(passwordNeu);
session.setAttribute("benutzer", benutzer);
session.setAttribute("message", message);
request.getRequestDispatcher("index.jsp").forward(request, response);
} else if (agb == null|| datenschutzbestimmungen == null) {
message1 += "Checkboxen sind nicht checked.";
session.setAttribute("message1", message1);
request.getRequestDispatcher("profil.jsp").forward(request, response);
} else if (!alterKorrekt) {
message2 += "Das Alter ist eine Zahl im Intervall [0, 123]";
session.setAttribute("message2", message2);
request.getRequestDispatcher("profil.jsp").forward(request, response);
} else if (mailKorrekt == false) {
message3 += "Email nicht korrekt: Mindestens 5, Maximal 20 Groß- oder Kleinbuchstaben, optional mit Sonderzeichen " +
".- +“ (Punkt, Minus, Unterstrich, Plus) " +
"“@” gefolgt von beliebig vielen Klein- oder Großbuchstaben oder Zahlen " +
"“.” gefolgt von minimal zwei, maximal drei Kleinbuchstaben";
session.setAttribute("message3", message3);
request.getRequestDispatcher("profil.jsp").forward(request, response);
} else if (!telefonKorrekt) {
message4 += "Eine Telefonnummer beginnt entweder mit + und zwei Zahlen oder mit einer 0\r\n" +
"nach der 5. Stelle kann optional ein / oder ein - stehen\r\n" +
"gefolgt von bis zu 10 weiteren Zahlen";
session.setAttribute("message4", message4);
request.getRequestDispatcher("profil.jsp").forward(request, response);
} else if (!passwordNeu.equals(passwordWdh)) {
message5 += "Passwörter stimmen nicht überein.";
session.setAttribute("message5", message5);
request.getRequestDispatcher("profil.jsp").forward(request, response);
}
This is my FehlerManagerclass to check, if the mail, phonenumber, age (alter) is correctly put in in the formular:
public class FehlerManager {
public boolean alterKorrekt (String alter) {
boolean istKorrekt = false;
if (alter != null && alter.matches("[0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-3]") ) {
istKorrekt = true;
}
return istKorrekt;
}
public boolean mailKorrekt (String mail) {
boolean istKorrekt = false;
if (mail != null && mail.matches("[a-zA-Z._+-]{5,20}@[1-9a-zA-Z]+\\.[a-z]{2,3}")) {
istKorrekt = true;
}
return istKorrekt;
}
public boolean telefonKorrekt (String telefon) {
boolean istKorrekt = false;
if (telefon != null && telefon.matches("\\+[0-9]{2}[0-9]([0-9]{0,9})?|[0-9]{5}[-/]?([0-9]{0,9})?")) {
istKorrekt = true;
}
return istKorrekt;
}
}
And my Formular:
<form action="ProfilServlet" method="post">
Alter: <input type="text" name="alter"><br>
E-Mail: <input type="text" name="email"><br>
Telefonnr.: <input type="text" name="telefon"><br>
Passwort (Neu): <input type="text" name="passwordNeu"><br>
Passwort (Wiederholung): <input type="text" name="passwordWdh"><br>
<input type="checkbox" name="checkbox1" >AGB <br>
<input type="checkbox" name="checkbox2" >Datenschutzbestimmungen <br><br>
<button type="submit">Abschicken</button>
</form>
So why do I get after i put in correct age, mail, phone and so on the errormessage "Email nicht korrekt: Mindestens 5, Maximal 20 Groß- oder Kleinbuchstaben, optional mit Sonderzeichen .- + (Punkt, Minus, Unterstrich, Plus) “@” gefolgt von beliebig vielen Klein- oder Großbuchstaben oder Zahlen .” gefolgt von minimal zwei, maximal drei Kleinbuchstaben
This message is coming up when my mail isnt correct at this if Statement:
else if (!mailKorrekt) {
message3 += "Email nicht korrekt: Mindestens 5, Maximal 20 Groß- oder Kleinbuchstaben, optional mit Sonderzeichen " +
".- +“ (Punkt, Minus, Unterstrich, Plus) " +
"“@” gefolgt von beliebig vielen Klein- oder Großbuchstaben oder Zahlen " +
"“.” gefolgt von minimal zwei, maximal drei Kleinbuchstaben";
session.setAttribute("message3", message3);
request.getRequestDispatcher("profil.jsp").forward(request, response);
So my other methods dont make the same problem, even though their built up the same way (and i checked all the regex expressions on regexr.com, they are correctly done). What could be the problem?
Aucun commentaire:
Enregistrer un commentaire