• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida [GUIDA]Come creare convalidazione Captcha per un form web

ErNabbone

Utente Normale
Autore del topic
30 Ottobre 2009
58
0
Miglior risposta
0
Come creare convalidazione Captcha per un form web

[font='Georgia, Times New Roman, Times, serif']Introduzione

In questa guida cercherò di spiegarvi molto semplicemente come inserire una convalidazione captcha in un vostro form qualunque (captcha è l'acronimo di "Completely Automated Public Turing test to tell Computers and Humans Apart").


__________________

Requisiti software

Per il funzionamento di tale sistema, abbiamo bisogno di:
○ Un database MySql per il salvataggio di stringhe casuali e i rispettivi dati (data di creazione, di scadenza, etc.);
○ Nel nostro server "hostante" deve essere installato php 4.5 o superiore.

__________________

Spiegazione & svolgimento

Di seguito spiegherò i codici php e come inserirli in una nostra pagina php.
Come prima cosa dobbiamo creare una tabella di nome "validation" in un nostro database che contenga quattro colonne:
• "id" (Codice INT con auto incremento numerale);
• "url_key" (Codice generato casualmente dallo script);
• "captcha" (Stringa di numeri e lettere che comparira sulla nostra immagine);
• "expire_date" (Legge la data di creazione della form e la stampa).

Perr far ciò potete o usare il caro e vecchio navicat, o eseguire una query direttamente dal pannello sql (richiamabile dal dos con il comando mysql_ se disponiamo della versione 5.0 o superiore):
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Dopodichè iniziamo con i codici veri e propi da inserire nella nostra pagina php.
Lo script che andremo a creare non utilizzerà cookie o sessioni dati per il salvataggio di informazioni per la convalidazione dei dati, ma creerà un form sql nella tabella da noi creata all'apertura della pagina web: la pagina in cui è salvato il form alla sua visualizzazione genererà una stringa casuale che verrà salvata nel database, al quale verrà associata una chiave casuale univoca.

Inseriamo quindi nella nostra pagina web (prima del tag <html> se possibile, oppure tra i tag <header> e </header>):
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Notare in quest' ultimo codice la generazione casuale di alfanumerici Esadecimali. Concetto molto semplice e allo stesso tempo complesso da tradurre in codici.

Ora passiamo alla creazione del codice casuale e del form con richiesta di convalida.
Quindi sempre prima del tag <html>, inseriamo il codice:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora passiamo all'azione diretta sul form:
cerchiamo il tag <form*>;
lì dove ci fa più comodo, inseriamo il tag
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

!Attenzione!: Nei vostri form, al 90% dei casi è già esistente l'ultimo tag <input type="submit"*>, in tal caso non inserire due volte lo stesso "tag" bensì eliminare quello nell'ultimo Codice da me fornitovi.

__________________

Conclusione

Spero che questi script siano utili a qualcuno e spiegati in modo abbastanza chiaro e semplice.
Inoltre vi informo che per alcuni script ho preso spunto da internet (come tutti del resto) e che in ogni caso non sono del tutto sicuri: consiglio per questo quantomeno di cambiare i nomi delle stringhe.

Un saluto,
Erich alias ErNabbone.
[/font]