|
||||
|
|
#1 (permalink) |
|
Nuovo della community ![]()
37 Messaggi
![]() |
Problema con invio di stringhe...jsp
Salve a tutti, avrei un problemino...Ho una form con campi input e textarea,e i dati che inserisce l'utente vengono mandati in un db...il problema e che se io inserisco nella textarea una parola con un aportofo(per esempio se inserisco nell'altro), la servlet non inserisce niente...Il db non è un problema, nel senso che se faccio un inserimento manuale funziona....
Grazie |
|
|
|
|
|
#2 (permalink) | |
|
Nuovo della community ![]()
29 Messaggi
![]() |
Quote:
Se fai es: String query = "INSERT ....... '" + tuaVar + "' ......"; mi pare scontato/ovvio che se la variabile stringa tuaVar contiene un ' allora "sballa" la query!! (perché chiude prima il valore) Se usi direttamente JDBC: o usi un PreparedStatement oppure il quoting della stringa ma sopratutto l'escaping dei caratteri speciali è tutto a carico tuo. Se usi un altro framework/libreria per l'accesso al DB... allora precisa, non lo posso sapere io. ![]()
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 (permalink) |
|
Nuovo della community ![]()
37 Messaggi
![]() |
Ti posto la servlet che riachiamo dalla form cosi magari puoi dirmi dove sbaglio
codice:
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletAnamnesiProx extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String DRIVER = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/pediatria";
String anamnesi = request.getParameter("anamnesi");
try {
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(url,"root","1234");
Statement stmt = conn.createStatement();
stmt.executeUpdate( "REPLACE INTO anamnesi_pat_prox SET anamnesi='"+anamnesi+"' ");
stmt.close();
conn.close();
}
catch (Exception ex) {
System.out.println(ex);
}
response.sendRedirect(URL);
}
}
Grazie mille per la risp |
|
|
|
|
|
#4 (permalink) | |
|
Nuovo della community ![]()
29 Messaggi
![]() |
Quote:
Ripeto (meglio) quanto già detto sopra: la composizione fatta "a mano" tramite banale concatenazione di pezzi di stringhe è pericolosa. Se la variabile anamnesi fa riferimento a es. "nell'altro" il testo complessivo della query diventa: REPLACE INTO anamnesi_pat_prox SET anamnesi='nell'altro' Ci sono 3 apici ' nell ' altro '. E ovviamente così è sbagliato. E lo ripeto ancora: o usi un PreparedStatement oppure devi farti carico tu, usando operazioni di replace o librerie esterne, di fare l'escape dei caratteri speciali come appunto l'apice.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
![]() |
«
Primi passi con Java: strano comportamento del programma
|
Invio dati in db con successiva notifica
»
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Tutti gli orari sono GMT +2. Attualmente sono le 09:49.









Modalità lineare

