Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592

    Errore causato da apici

    Salve a tutti, sto imparando qualche cosa di base e per ora mi sono soffermato sulle form che prendono informazioni da un'utente e le passano ad un database.

    Ho due pagine ASP, la prima è quella con i form, passa gli input alla seconda la quale li inserisce nel DB. Lo so, è un po' macchinoso, ma si fa per gradi.

    Se inserisco nella prima pagina (http://www.matteobinda.com/ProvaASP/Form.asp) delle parole con l'apostrofo mi dà un errore di sintassi a causa dell'apostrofo. Come risolvo?

    Ecco la riga incriminata:


    codice:
    strsql = "INSERT INTO fotoinfo ( name, category, comments ) Values ( " & name & ", " & category & ", " & comments & ");"


    PS: scusate ancora se ho uppato un 3d vecchio di un anno...

  2. #2
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Raddoppiando gli apici con la funzione Replace:

    strStringaPulita = Replace(strStringaDaPulire, "'", "''")

  3. #3
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592
    Grazie mille, ci ho messo un po' a capire dove andava ficcato, ed ora ho fatto cosí (visto che gli apici li trovo solo nei commenti):

    codice:
    <%
    Dim name, category, comments
    name = Request.Form("name")
    category =  Request.Form("category")
    comments=  Request.Form("comments")
    comment = replace(comments, "'", "''")
    Response.Write "File name:  " & name & "
    " 
    Response.Write "Category: " & category & "
    "
    Response.Write "Comments: " & comment & "
    "
    dbConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mdb-database/fotodata.mdb")
    strsql = "INSERT INTO fotoinfo ( name, category, comments ) Values ( '" & name & "', '" & category & "', '" & comment & "');"
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open dbConn
    objConn.Execute strsql 
    Response.Write strsql
    objConn.Close 
    set objConn = Nothing
    %>
    In pratica devo applicare l'isftruzione per ogni oggetto (sono oggetti?) del Request.Form. Non esiste un modo per fare tutto in un'unica volta facendo un replace analogo ma applicato ai valori dell'oggetto strsql?

  4. #4
    no, va fatto per campo, perché la stringa sql contiene (o potrebbe contenere) apici - che non vanno ovviamente toccati

  5. #5
    Utente di HTML.it L'avatar di TeoB
    Registrato dal
    Dec 2004
    Messaggi
    592
    Grazie mille

  6. #6
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Si può fare con un artificio, anche se non c'è la sicurezza al 100%...

    Non usare gi apici per l'SQL, ma un "tag" che ti inventi tu e che sei sicuro che non verrà messo nel form. Ad esempio {@#
    codice:
    strsql = "INSERT INTO fotoinfo ( name, category, comments ) Values ( {@#" & name & "{@#, {@#" & category & "{@#, {@#" & comment & "{@#);"
    
    strSql = Replace(strSql, "'", "''")
    strSql = Replace(strSql "{@#", "'")

  7. #7
    Originariamente inviato da longline
    Si può fare con un artificio, anche se non c'è la sicurezza al 100%...

    Non usare gi apici per l'SQL, ma un "tag" che ti inventi tu e che sei sicuro che non verrà messo nel form. Ad esempio {@#
    codice:
    strsql = "INSERT INTO fotoinfo ( name, category, comments ) Values ( {@#" & name & "{@#, {@#" & category & "{@#, {@#" & comment & "{@#);"
    
    strSql = Replace(strSql, "'", "''")
    strSql = Replace(strSql "{@#", "'")
    scusa ma la domanda sorge spontanea: perché?
    xxx

  8. #8
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Originariamente inviato da Alethesnake
    scusa ma la domanda sorge spontanea: perché?
    Per rispondere a questa domanda
    Originariamente inviato da TeoB
    Non esiste un modo per fare tutto in un'unica volta facendo un replace analogo ma applicato ai valori dell'oggetto strsql?

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.