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

    problema con query su access e caratteri speciali

    ciao

    per evitare problemi di sql-injection ho fatto una funzione che converte le stringhe rendendole 'sicure' prima di metterle nel DB, ad esempio:

    codice:
    Function c_campo(stringa)
    stringa = server.HTMLEncode(stringa)
    stringa = Replace(stringa, "'", "''")
    stringa = Replace(stringa, "%", "[%]")
    stringa = Replace(stringa, "[", "[[]")
    stringa = Replace(stringa, "]", "[]]")
    stringa = Replace(stringa, "_", "[_]")
    stringa = Replace(stringa, "#", "[#]")
    
    c_campo = stringa
      
    End Function
    il problema che sorge è questo, quando faccio una query dove cerco un elemento che ho inserito utilizzando quella funzione lo script va in errore, ad esempio

    se inserisco

    casa_nome

    nel db va casa[_]_nome

    il prob è che quando faccio una query sul db io dico:

    select * from tabella where campo='casa[_]nome'

    e lo script mi da il seguente errore:

    codice:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'nome = inserimento[_]contatti'.
    evidentemente non considera le [ ] come parti del testo... cosa posso fare?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non comprendo l'utilità della funzione e la necessità di stravolgere il testo che viene inserito all'interno del db.

    Roby

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.