Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    JSP inserire apici nei form

    Salve a tutti,
    ho creato delle pagine jsp con dei form dove inserire dei nomi, solo che quando immetto un nome con l'apostrofo mi da errore, visto che riconosce gli apici come divisione delle caselle.
    Qualcuno può dirmi come posso risolvere il problema? Ho fatto alcune ricerche ma ho trovato solo soluzioni per php.

    Grazie
    P.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non si capisce niente del tuo problema... divisione delle caselle? :master:

    Un form trasmetterà qualsiasi tipo di dato... al limite potresti avere problemi (potresti doveri fare l'escape di certi caratteri) nel caso in cui volessi salvare i dati in un database.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Si scusami ma non sono molto pratico, allora riformulo il problema
    ho una pagina jsp con un form quando immetto nomi con apice ' mi legge solo la prima parte della frase perchè mi divide la frase in due ad esempio 'anch ' io ' e mi da errore.
    ho letto in giro metodi per evitare questo problema tipo :

    codice:
     ps.setString(1, getUsername().replaceAll("'","\""));
    ma non so dove inserirlo.
    Nella mia pagina jsp dove c'è il form o nell'altra dove richiamo la quary per inserire i dati nel database mysql??

    P.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ti assicuro che i dati vengono trasmessi tutti... puoi fare tu stesso la prova con queste due semplicissime pagine

    form.jsp
    codice:
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%--
    The taglib directive below imports the JSTL library. If you uncomment it,
    you must also add the JSTL library to the project. The Add Library... action
    on Libraries node in Projects view can be used to add the JSTL 1.1 library.
    --%>
    <%--
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
    --%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Form Demo</title>
        </head>
        <body>
    
        <h1>Form Demo</h1>
        <form name="myform" action="postform.jsp" method="post">
            Nome: <input type="text" name="nome" />
    
            Cognome: <input type="text" name="cognome" />
    
            <input type="submit" name="submit" value="Submit" />
        </form>
        </body>
    </html>
    e postform.jsp
    codice:
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%--
    The taglib directive below imports the JSTL library. If you uncomment it,
    you must also add the JSTL library to the project. The Add Library... action
    on Libraries node in Projects view can be used to add the JSTL 1.1 library.
    --%>
    <%--
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
    --%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Post Form Destination</title>
        </head>
        <body>
    
        <h1>Retrieving Post Data</h1>
        
        Nome: <% out.println(request.getParameter("nome")); %>
    
        Cognome: <% out.println(request.getParameter("cognome")); %>
    
        Altra prova    
        </body>
    </html>
    Per quanto riguarda l'escape dei caratteri "dannossi", chiaramente lo devi fare nella pagina di inserimento nel database (quindi la pagina che elabora i dati in arrivo dal form)... anche perché la pagina che contiene il form (o la pagina target dell'action del form) non sa niente dei dati che stai inserendo nel form stesso fin quando non ne fai il submit....
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Grazie per l'aiuto e capisco di non essere stato chiaro io, questi form che mi hai passato li avevo già scritti il vero problema è che io vorrei salvare i dati su un database (utilizzo mysql) e mettendo l'apice non lo fa.
    Hai parlato di escape cos'è e come posso fare? o dove posso leggere qualcosa a riguardo su internet?
    P.

  6. #6
    Devi fare il replace dell'apostrofo sostituendolo con due apici... in pratica se devi inserire anch'io nella query di inserimento devi passare anch''io. E' sufficiente utilizzare il metodo replaceAll della classe String:

    Codice PHP:
    String s "anch'io";
    s.replaceAll("'","''");
    ...
    //insert sql
    .. 

    Cmq se usi i PreparedStatement per l'inserimento, questo problema non ti si presenta e puoi tranquillamente passare la stringa originale.
    Al mio segnale... scatenate l'inferno!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.