<%@ page language="java" import="java.sql.*" %> Sikker indskriv i gæstebog - løsning

Skriv dig ind i min gæstebog

Navn:

Besked:

<% java.util.regex.Pattern ulovligeTegn = java.util.regex.Pattern.compile( "[^\\p{L}\\p{Space}\\p{Digit}\\p{Sc}!#%()*+,-./:;?@\\[\\]^_\\{\\|\\}\\~]"); // Se om der kommer nogen data fra formularen String navn = request.getParameter("navn"); String besked = request.getParameter("besked"); if (navn != null && besked != null) { // OK, vi har fået en indtastning. Tjek om brugeren reelt har tastet noget. navn = ulovligeTegn.matcher(navn).replaceAll(""); // fjern ulovlige tegn besked = ulovligeTegn.matcher(besked).replaceAll(""); // fjern ulovlige tegn if (navn.length() < 3 || besked.length() < 3) { out.write("Indtast venligst dit fulde navn og en besked."); } else // OK, beskedden er gyldig. Indsæt den i databasen { String drv = application.getInitParameter("dbDriver"); // se afsnit 4.5.5 String url = application.getInitParameter("dbUrl"); Class.forName(drv); // initialiseringsparameter (= "com.mysql.jdbc.Driver") Connection con = DriverManager.getConnection(url); //("jdbc:mysql:///test") PreparedStatement pstmt = con.prepareStatement( "INSERT INTO gaestebog (navn, besked, dato, ip) VALUES(?,?,?,?)"); pstmt.setString(1, navn); pstmt.setString(2, besked); pstmt.setDate(3, new java.sql.Date(System.currentTimeMillis())); pstmt.setString(4, request.getRemoteAddr()); pstmt.executeUpdate(); pstmt.close(); con.close(); // alt gik godt. Send brugeren tilbage til gæstebogen response.sendRedirect("../kapitel_05/gaestebog.jsp"); } } %>