Ich möchte eine Person mit Namen und Passwort zur Datenbank mit einem Register-Button auf reg.html hinzufügen. Benutzer füllen Benutzernamen und Passwort und dann drücken Sie die Schaltfläche "Registrieren" und Informationen werden zur Datenbank hinzugefügt. Aber mein Code funktioniert nicht richtig.hinzufügen nicht zur Datenbank in Java Jsp
public void addPerson(String username, String password) {
if (con == null) {
System.out.println("no connection");
connect();
}
try {
Statement state = con.createStatement();
ResultSet rs = state.executeQuery("INSERT INTO users VALUES ('" + username + "', '" + password + "'");
rs.next();
} catch (Exception e) {
e.printStackTrace();
}
}
Dies ist der reg.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<jsp:useBean id="bean1" scope="session" class="veri.kisi" />
<jsp:setProperty name="bean1" property="username"/>
<jsp:setProperty name="bean1" property="password" />
</body>
</html>
diesem Zusammenhang die kisi.java ist
public void insertPerson() {
DatabaseLayer layer = new DatabaseLayer();
layer.addPerson(username, password);
}
'INSERT' ist keine * Query *. Überprüfe deine Log-Dateien, weil du einen Stacktrace hast, der dir das sagt. – Andreas
** Verwenden Sie ** nicht ** String-Verkettung, um eine SQL-Anweisung mit benutzerdefinierten Strings zu erstellen. Siehe [SQL-Injektion] (https://en.wikipedia.org/wiki/SQL_injection). – Andreas
Und ** nicht ** Benutzer Passwörter im Klartext speichern. Das ist * grob unverantwortlich * für Ihre Benutzer. Verschlüsseln Sie die Kennwörter hinter einem 1-Wege-Hash, damit auch Sie als Systembesitzer sie nicht lesen oder wiederherstellen können. – David