Back to top

Autore Topic: Limitare registrazioni utenti  (Letto 2607 volte)

Offline giorgia_74

  • Esploratore
  • **
  • Post: 106
  • Sesso: Femmina
    • Mostra profilo
Limitare registrazioni utenti
« il: 18 Nov 2011, 09:32:08 »
Ciao a tutti e grazie in anticipo per i consigli che vorrete darmi, sono tre gioni che cerco in largo e in lungo una situazione simile alla mia nel forum ma non ci sono arrivata, spiego brevemente (se è possibile):

Sto creando un sito che offre dei servizi ad utenti registrati , utilizzo joomla 1.7.0 , ho installato crhonoform per filtrare la registrazione , l'esigenza è quella di utilizzare solo l'e-mail (come nome utente) e un codice (come password) fornito dal proprietario del sito cosa che ho fatto tranquillamente con crhonoform le registrazioni funzionano, funziona l'autologin e partono le e-mail sia all'utente che all'amministratore, il problema che devo risolvere è quello di impedire la registrazione a qualsiasi persona, devono potersi registrare solo le persone a cui è stato fornito il codice (il quale deve necessariamente diventare password perchè tali accessi vengono utilizzati anche per loggarsi in una banca dati esterna al joomla e deve essere possibile recuperare tale password nel caso di dimenticanza, dato che con joomla non è possibile recuperare la password ma solo resettarla). I codici vengono distribuiti tramirte delle card che non sono nominali per cui c'è anche bisogno di associare l'e-mail al codice (questo non è un problema basta esportare i report del form di registrazione creato col crhonoform).

La mia idea per ovviare a tale problema è questa:
potremmo avere in un file exel la lista dei codici già distrbuiti (aggiornabile man mano che la distribuzione si espande) in modo da poter avere un confronto del tipo: l'utente prova a registrarsi e inserisce il codice , il sistema lo confronta con la lista delle card distribuite, se il codice corrisponde ad una delle card nella lista, la registrazione va a buon fine e l'utente viene automaticamente attivato e loggato e il codice viene devcurtato dalla lista, se invece (come accadrebbe se inserissero una qualsiasi parola o digitazione fasulla) il codice non viene trovato nella lista, la registrazione non avviene e il sistema restituisce un errore con un messaggio tipo "il codice inserito non è valido, se non possiedi ancora una card chiama il numero verde ecc".

Quello che chiedo io è esiste un modo "automatico " per fare ciò? Con il cronoform è possibile che i dati inseriti prima di essere utilizzati per la registrazione vengano filtrati e confrontati con questa lista?

Esite invece secondo voi un'altra soluzione più semplice per filtrare le registrazioni secondo le mie esigenze?

L'utente creato deve essere già attivo e deve essere attivo l'autologin contestuale alla registrazione.

Mi rendoconto che è una richiesta un po' particolare, il sito è finito ma se non trovo la soluzione a ciò il  mio lavoro sarà stato tutto inutile...

Grazie
Giorgia
« Ultima modifica: 18 Nov 2011, 16:51:57 da giorgia_74 »

Offline giorgia_74

  • Esploratore
  • **
  • Post: 106
  • Sesso: Femmina
    • Mostra profilo
Re:Limitare registrazioni utenti
« Risposta #1 il: 18 Nov 2011, 18:23:21 »
Secondo voi sono sulla strada giusta se provo a fare ciò con  chronoform utilizzando la funzione "Custom Server Side Validation" ?

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Limitare registrazioni utenti
« Risposta #2 il: 20 Nov 2011, 09:34:52 »
Penso di si, con chronoform puoi attivare i più vari controlli sulle tabelle.
Se ho compreso bene il problema, in sintesi dovresti procedere così.

Facendo la registrazione con chronoform credo che tu abbia inserito dei campi aggiuntivi a quelli canonici di joomla. Uno di questi dovrebbe essere il codice della card. I campi aggiuntivi andranno su una tabella diversa da quella degli utenti di Joomla, che avrà in comune con essa il codice utente di joomla, per poterle mettere in relazione 1 a 1.

Crei una tabella con tutti i codici delle card.

In server side validation fai due controlli:

1) sulla tabella dei codici per vedere se il codice inserito appartiene all'elenco di codici validi.

2) sulla tabella dei dati aggiuntivi degli utenti registrati per vedere se il codice inserito non è già stato usato.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline giorgia_74

  • Esploratore
  • **
  • Post: 106
  • Sesso: Femmina
    • Mostra profilo
Re:Limitare registrazioni utenti
« Risposta #3 il: 20 Nov 2011, 10:35:34 »
Più o meno era quello che pensavo di fare, ora si tratta solo di realizzarlo, non appena avrò fatto tutto il procedimento vi posto i vari passaggi nel caso potesse servire a qualcuno.

In alternativa avevo pensato , visto che il server validation c'è anche custom, di creare un file php di validazione del codice, un po' come si fa per il codice fiscale, avevo trovato un post in cui lo si spiegava ma non lo trovo più.

Grazie comunque per ora!

Giorgia

Offline giorgia_74

  • Esploratore
  • **
  • Post: 106
  • Sesso: Femmina
    • Mostra profilo
Re:Limitare registrazioni utenti
« Risposta #4 il: 14 Dic 2011, 12:49:45 »
Ciao Vales in base a ciò che dici tu

Citazione
Facendo la registrazione con chronoform credo che tu abbia inserito dei campi aggiuntivi a quelli canonici di joomla. Uno di questi dovrebbe essere il codice della card. I campi aggiuntivi andranno su una tabella diversa da quella degli utenti di Joomla, che avrà in comune con essa il codice utente di joomla, per poterle mettere in relazione 1 a 1.

L'esigenza è mutata ed è quella di loggarsi direttamente con il codice della card quindi i codici delle card corrispondono al nome utente  e anche alla password (non ho aggiunto dei campi alla registrazione ma sovrascritto quelli standard) con la nuova versione di chrono basta inserire nella configurazione dell'azione di registrazione il campo che vuoi far diventare password, user e così via...

la mia registrazione viene fatta in questo modo:

primo form: unico campo "codice della card" submit >validazione>riporto del codice nel secondo form

secondo form:

codice della card: (codice riportato da primo form dopo essere stato validato)

nome:

e-mail:

al submit la registrazione forzata di chronoform con i campi obbligatori standard del joomla

user:codice della card
password:codice della card
verifica password: codice della card
e-mail:e-mail
nome: nome

a questo punto visto che in Joomla non si possono creare due utenti con lo stesso nome utente il secondo controllo viene fatto in automatico (rimane il problema della restituzione dell'errore message che avendo forzato la registrazione standard con quella di chrono dovrò rimettere "a mano"). E viene risolto anche il problema del recupero del codice sfruttando la funzione remind. Unico neo : dopo aver richiesto il reinvio dello user il sistema ti reindirizza al login standard (ho creato un login sostitutivo ad un unico campo con chrono con la stessa logica della registrazione) con i due capi user e pass e ti manda anche il link in e-mail. L'alternativa qual'è? Rifare tutto con chrono: ho già creato un form che manda via mail una richiesta di reinvio codice, bisognerebbe mettere un custom code che va "a pescare" il codice dagli user e lo i invia in e-mail. (ma non sono pratica di sintassi php)

Non ho risolto comunque il problema della verifica del codice, ho creato una tabella con i codici della card , ma quale azione uso per validare i codici? in Auto server side validation non c'è un parametro di configurazione che mi permetta ciò.  Dovrei usare l'azione custom server side validation e inserire del codice php ma non sono molto esperta di ciò.... quale sintassi bisogna usare per richiamare i dati nella tabella e confrontarli?

Grazie
G.

ps: come riportare il codice dal primo al secondo form è spiegato in un altro post utilissimo!!
« Ultima modifica: 14 Dic 2011, 13:22:22 da giorgia_74 »

 



Web Design Bolzano Kreatif