Motore di Ricerca in ASP con paginazione dei risultati
Pagina 1 di 3
In un vecchio articolo abbiamo visto come creare un Motore di Ricerca in ASP utilizzando MS Access come database, dimenticando però un piccolo particolare, ovvero la paginazione dei dati, altro argomento trattato in passato, senza però vedere le due cose fuse in un'unica soluzione.
Lo scopo di questo articolo è appunto quello di fondere i due concetti e di vedere sia il caso dell'invio dei dati (criterio di ricerca) col metodo GET che col metodo POST, essendoci delle differenze notevoli nella filosofia di realizzazione dei due sistemi di ricerca.
Premessa generale: utilizzo e differenze tra GET e POST
Essendo questo un articolo di natura avanzata, presumo che il lettore conosca la differenza di invio dei dati con GET o con POST, ma per completezza e per aiutare anche il lettore meno pratico, ritengo opportuno un piccolo preambolo.
Un form HTML può essere gestito, in fase di invio dei dati con i due metodi sopra citati, impostando il codice HTML come segue.
GET:
<form method="GET" action="cerca.asp">POST:
<form method="POST" action="cerca.asp">La differenza è che con GET i dati verranno accodati alla URL della pagina attraverso dei parametri che prendono il nome di querystring (stringa di ricerca, per l'appunto), mentre col metodo POST questo non accade e la URL della pagina vedrà solo il file di destinazione come elemento finale della URL stessa.
La URL di destinazione dei due casi sarà dunque come una delle seguenti.
GET:
http://localhostcerca.asp?parametro_1=valore¶metro_2=valorePOST:
http://localhostcerca.aspIl recupero dei dati attraverso un form avviene sempre grazie all'oggetto built-in Request, con la differenza che per GET usiamo il metodo di recupero QueryString e per POST usiamo il metodo di recupero Form.
Altra differenza è che in querystring (quindi GET) sia che i dati vengano inviati attraverso un form che attraverso un link, abbiamo "solo" 255 caratteri a disposizione, quindi come soluzione può essere appunto adatta ad un sistema di ricerca o ad un link con pochi parametri, ma non per l'invio di un modulo di registrazione con molti campi (caso in cui si rende indispensabile il POST).
Ultima differenza è nella sicurezza dei dati: in GET una password, un pin, un numero di carta di credito, resta in chiaro nella URL; in POST questo non accade.
Quale sistema usare usare per un motore di ricerca? E' lo stesso ed in questo articolo, come già detto, esamineremo i due casi.
Struttura del database Come già detto, utilizzeremo un database MS Access per il contenimento dei dati e per la richiesta della ricerca.
Il database si chiamerà db.mdb e sarà composto da una sola tabella, con relativi campi.
- articoli
- id (Contatore)
- titolo (Testo)
- descrizione (Memo)
Il form di ricerca
Si crei sul proprio server Web personale la cartella cerca all'interno della quale sistemare il database ed il file cerca.html corredato dal seguente codice:
<form method="METODO_DI_INVIO" action="cerca.asp"> <input type="text" name="testo"> <input type="submit" value="Cerca"> </form>Non credo ci sia nulla da aggiungere.
Per i due esempi sostituiremo con POST e con GET il valore in grassetto METODO_DI_INVIO, specificato all'interno dell'attributo method del tag <form>.
Ultima premessa prima di passare alla pratica: assegnare i permessi in lettura ed in scrittura alla cartella di lavoro cerca.







