07 giugno 2003 alle 07:53:53 Succede che se qualcuno tenta di registrarsi inserendo una email falsa, senza pertanto poter completare la registrazione con il clic al link dell'email che gli verrebbe inviata, la sua iscrizione viene ugualmente registrata nel database. Come si può evitare tutto questo? Grazie mille
felixcafarelli
Eliminato
0 Discussione
07 giugno 2003 alle 08:55:40 Attenzione, l'iscrizione non viene completata e lui non potrà interagire, difatti il suo username viene memorizzato nel database ma non convalidato.
stefano
Utente
68 Discussioni
07 giugno 2003 alle 14:26:47 Questo mi era chiaro, ma non pensi che sia opportuno trovare un modo per evitare di riempire (sporcare) il database inutilmente? E poi egli compare nella lista degli iscritti anche se in effetti non lo è. Grazie
stefano
Utente
68 Discussioni
15 luglio 2003 alle 15:16:40 Sottopongo nuovamente il seguente problema sperando che qualcuno possa dare una soluzione
Succede che se qualcuno tenta di registrarsi inserendo una email falsa, senza pertanto poter completare la registrazione con il clic al link dell'email che gli verrebbe inviata, la sua iscrizione viene ugualmente registrata nel database. Come si può evitare tutto questo? Come si può fare in modo che la scrittura nel database avvenga dopo il completamento dell'iscrizione?
15 luglio 2003 alle 16:13:53 Sarebbe piuttosto complicato fare come dici tu. Se sul db non viene scritto niente, infatti, come fa il sistema a riconoscerlo quando si collega al sito con il link che ha ricevuto? Se invece sul db viene memorizzato l'utente non abilitato, quando questo si presenta con il suo link puo' essere riconosciuto e abilitato. Aggiungendo al db una data di iscrizione (se non c'e'), si potrebbero avvisare gli utenti di confermare l'iscrizione entro una settimana, e quindi si potrebbero cancellare automaticamente gli utenti non abilitati iscritti piu' di sette giorni fa, per evitare che si "accumulino" nel db. Ciao
--------------- development@aspnuke.it
redbaron76
Avanzato
163 Discussioni
15 luglio 2003 alle 16:17:19 Modificato il 15 luglio 2003 alle 16:20:32Dunque... problema registrazione... Vediamo di fare un po' di chiarezza.
L'obiezione di stefano è sacrosanta (girano i chitarrini anche a me quando qualcuno si iscrive e non convalida, "sporcando" così inutilmente il db).
La questione è questa: dove salvo i dati che un utente mi invia quando si registra??
Le strade sono due: 1) Uso delle variabili di tipo Application() in modo tale da salvare i dati passati dall'utente appena registratosi direttamente nell'Applicazione e, in un secondo momento, li vado a prelevare dall'applicazione stessa, li uso per salvarli nel db e distruggo le variabili Application non appena l'utente conferma l'iscrizione. (necessita di una Funzione creata ad hoc per gestire questo genere di operazione). Una controindicazione della variabile Application è il fatto che se l'applicazione web sulla quale gira il portale si inchioda, viene scaricata dall'admin del server, viene riavviato il server, ecc... i dati salvati al suo interno vengono persi. (Ecco perchè non è stata scelta come soluzione ed ecco anche perchè non è molto consigliabile)
2)Li scrivo direttamente nel db (come in realtà già avviene) Stefano si è lamentato in quanto molti utenti inserirebbero delle mail false o errate e quindi la mail di conferma per l'avvenuta registrazione non arriverebbe mai al destinatario, rendendolo così "appeso" all'interno del db. E' vero...questo è un problema (oltre che una rottura di scatole). Ma è comunque su questa strada che io consiglio a tutti di intraprendere se si vogliono modificare le cose e risolvere il problema.
Come ovviare al problema? Beh... semplicemente non facendo scrivere le informazioni "provvisorie" (non validate) sulla tabella users bensì su una nuova tabella, ad esempio temp_users. Da questa tabella poi la nostra funzione ConfirmAccount andrà a prelevare i dati delle persone che cliccheranno sul link proposto nella mail per la convalida e una Funzione fatta ad hoc andrà a prelevarli e a scriverli nelle tabelle "users" presenti sia in main.mdb che in forum.mdb
Spero di aver chiarito il concetto e di aver dato un spunto a più di qualcuno....