Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    SQL, ASP, query e caratteri speciali

    Problemino con ASP e VBScript, per una pagina di ricerca all'interno di un db....
    Lo script riceva dati da un form così:

    dim search_cognome
    search_cognome = request.form("search_cognome")


    Poi crea la query:

    sql = " SELECT * FROM iscritti WHERE cognome LIKE '%"&search_cognome&"%' ORDER BY "&order&" "

    dove order è un'altra variabile che arriva dal form.

    Poi la esegue e spara fuori i risultati sotto forma di tabella.
    Funziona tutto bene, ma sto provando a migliorare le cose.

    Il problema è:
    - se si cerca un cognome con dentro un'apostrofo (D'Alema), la query crasha miseramente perchè l'apostrofo la fa terminare prima o le dà un'istruzione non valida

    Ho adattato un javascript che prima del submit dal form mi valida il campo del form:

    <script language="javascript">
    function validaRicerca(frm)
    {
    var re=new RegExp();
    re=/^[a-zA-Z0-9\ ]{3,}$/;
    if(!re.test(frm.search_cognome.value))
    { alert("L'espressione di ricerca contiene caratteri non validi.");
    return false
    }
    return true;
    }
    </script>

    Questo elimina il problema dei caratteri strani "£$%&/()=?^ e la query non crasha più, perchè non possono essere inviate stringhe contenenti caratteri che la fanno crashare....

    Però mi apre un altro problema:
    - il campo di ricerca per cognome è facoltativo. Ma se viene lasciato bianco, questo javascript non me lo valida!!! In pratica mi obbliga a cercare un cognome!!!
    Come faccio ad aggiungere il valore "vuoto" o "blank" o come diavolo si chiama, in modo che anche lui rientri tra i caratteri consentiti?

    Oppure: meglio abbandonare l'idea del javascript che valida e far fare una validazione server-side all'interno dello script di ricerca e della query???

    Ma come fare?

    Grazie mille a tutti!

  2. #2
    Utente di HTML.it L'avatar di Cream
    Registrato dal
    Feb 2002
    Messaggi
    534
    per l'apice prova a fare il replace con il doppio apice:

    testo = Request.form("form")
    testo = replace(testo, "'", "''")

  3. #3
    Grazie.
    In effetti ci avevo già pensato e funziona (ovviamente)
    Ma mi resta il problema:
    se uno fa una ricerca con

    %&//

    la query va a gambe all'aria...
    Certo, potrei fare un replace per ogni carattere, ma... non so, non mi sembra la soluzione più seria...

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Modifica la funzione in questo modo

    <script language="javascript">
    function validaRicerca(frm)
    {
    if (frm.search_cognome.value=="")
    return true;
    var re=new RegExp();
    re=/^[a-zA-Z0-9\ ]{3,}$/;
    if(!re.test(frm.search_cognome.value))
    { alert("L'espressione di ricerca contiene caratteri non validi.");
    return false
    }
    return true;
    }
    </script>
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    E già...
    Come ho fatto a non pensarci?
    Grazie mille...

    Dubbio: sarebbe forse meglio implementare un controllo server-side o questo script è sufficiente, secondo voi?

    Grazie mille a tutti per le veloci risposte!

  6. #6
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    se disabilito javascript come al solito ti frego, meglio usare le regular expression anche lato server

  7. #7
    Eh, infatti... Il problema me lo sono posto anche io perchè per aggirare la cosa basta disabilitare javascript...
    Ma come uso le regular expression lato server?

  8. #8
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    fai una ricerca nel forum è trattato migliaia di volte, non devi nemmeno capire quale sintassi usare perchè è la stessa di js

  9. #9
    Ups, scusa
    Mi sono fatto prendere dalla discussione... e ho fatto una domanda da demente.
    Ora cerco.
    Grazie di tutto...

  10. #10
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da rixx
    se disabilito javascript come al solito ti frego, meglio usare le regular expression anche lato server
    Se disabiliti javascript, non fa la submit...... Infatti la submit la metterei direttamente dentro la funzione...
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

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.