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!