[PHP] Aree riservate e gestione utenti

lxella

Nuovo Utente
2 Dic 2017
3
0
1
16
Mantova
Ciao a tutti (di nuovo),
passo subito al dunque essendomi già presentato in un'altra discussione.
Sto realizzando un sito per il mio gruppo scout (lo dico per introdurre il fatto che sono tutti imbranati in tecnologie informatiche, quindi devo lasciare qualcosa - anche per quando non ci sarò più - di intuitivo e moooolto semplice da usare).
Abbiamo inserito 1 solo CMS (ZenPhoto) per gestire un album fotografico. Questo CMS ha una tabella nel database legata agli utenti che abbiamo deciso di sfruttare.
Per questo motivo abbiamo creato una pagina di registrazione in PHP esterna a ZP poiché nel cms risultava molto più difficile creare gli utenti. La pagina si collega al database (nella tabella del cms) e inserisce gli utenti.
Già qui avrei alcune richieste.. Siccome la registrazione verrà effettuata dai capi scout (per permettere l'accesso solo ad utenti autorizzati) devo renderla il più veloce possibile... Devo richiedere i campi Nome, Username, Email, Gruppo e Password. A questo punto vi chiedo:
  • è possibile far sì che il campo email si inserisca automaticamente username@dominio.dominio (dove username è dinamico e corrisponde al campo prima, mentre @dominio.dominio è statico e rimane sempre uguale - ovviamente la mail non esiste, ma il cms la richiede obbligatoriamente per autorizzare l'utente ad accedere, quindi inseriamo una mail fasulla che poi essi potranno modificare)?
  • è possibile generare automaticamente una password di una lunghezza stabilita?
Poi, nel sito sono presenti anche alcune aree riservate.. Una è l'area documenti (ho già il form per il caricamento dal sito, per l'eliminazione useremo l'hosting, almeno per ora) cui devono poter accedere tutti i gruppi (nel mio caso le 6 squadriglie, i capi e gli amministratori - non i genitori o comunque un visitatore), mentre le altre sono aree riservate ai soli amministratori.
Per fare ciò mi serve che il login sia collegato alla medesima tabella del database e che possa autenticare solo gli utenti attivi e appartenenti al gruppo indicato. Adesso per proteggere queste pagine ho messo gli .htaccess ma, a quanto ne so, non sono collegabili al database (se invece mi sbaglio ditemelo!).
La cosa più comoda, per me, sarebbe avere il login esattamente com'è adesso con gli .htaccess (il popup che altrimenti non fa visualizzare la pagina).

Passiamo a quella che, credo, sia l'ultima cosa: la gestione degli utenti.
Per la gestione dei documenti posso anche affidarmi all'hosting, essendo comunque abbastanza intuitivo..
Ma per la gestione degli utenti non posso chiedere che passino per il database, perché sicuramente non sarebbe pratico per loro, e rischierebbero di combinare dei disastri, e la gestione delle utenze tramite il cms è abbastanza confusionaria.. Quindi pensavo a una pagina in cui, per lo meno, siano visualizzabili tutti gli utenti (nella tabella sono salvati anche i gruppi che servono al cms, e questi hanno come valore di validità 0, mentre le utenze con id/user/pass/email/... hanno valore di validità 1, quindi mi servirebbe che gli utenti vengano selezionati solo se attivi (valore di validità 1) e, se possibile, li vorrei avere divisi nei vari gruppi che dicevo prima (le 6 squadriglie, capi e genitori), se non fosse possibile va bene una pagina unica in cui visualizzarli, ma con una casella di ricerca per trovare velocemente chi sto cercando. Poi ho necessità di visualizzare per ogni utente il nome, lo username, il gruppo (se non divisi nei gruppi), la mail e la password di default. Spiego quest'ultimo punto..
Siccome le utenze vengono create dagli amministratori (e qui entrerebbe in gioco la cosa della password automatica che dicevamo), questi devono poi comunicare agli interessati le credenziali. Siccome, sempre per un discorso di praticità e rapidità non è pensabile segnarsi le password di tutti, dovrei visualizzare la password della registrazione. E qui nascono i problemi.. Nel senso che questa è l'unica cosa delle tre che sono riuscito, seppur in parte, a fare. Ho trovato uno script PHP che richiamasse il database e stampasse a video solo gli utenti validi (la cosa del gruppo non sono riuscito a farla) mettendo
PHP:
SELECT * FROM tabella WHERE valid='1'
e inserendo poi la tabella HTML che veniva popolata. Il problema, se così vogliamo chiamarlo, è che nel database ho le password criptate in MD5.. Per questo mi esce a video l'hash della password di cui mi faccio ben poco. Io non voglio assolutamente conoscere la password degli utenti, anche per motivi di privacy e sicurezza, ma pretendo di sapere la password di default assegnata per potergliela comunicare... Avendo gli utenti divisi per gruppi, potrei stampare la pagina con le password di default di ognuno e consegnarle al capo squadriglia (sostanzialmente il coordinatore delle squadriglie, ovvero dei gruppetti all'interno del gruppo scout).
Se non si riuscisse a visualizzare la password di default nella pagina di gestione utenti vorrei almeno che potesse arrivare via mail a una mail uguale per tutte le utenze (una mail del gruppo appositamente creata), così che sia possibile stampare le varie mail (che nell'oggetto segnaleranno anche lo username per un facile riconoscimento).
Altre funzionalità che sarebbero molto utili all'interno della gestione utenti sarebbero quelle per:
  • generare una nuova password agli utenti (e anche qui, o spedirla via mail o salvarla nella pagina - sarebbe utile nel caso in cui un utente dimenticasse la password, così se ne genera una nuova);
  • modificare l'utente (o meglio, siccome nome e username rimarranno uguali, la mail sarà modificabile dall'utente a suo piacimento dal cms in quanto egli può gestire solo il suo profilo e non tutti e 40, e la password sarà modificabile da lui nel cms e da noi con il genera nuova password - nel caso - l'utilità sarebbe nel modificare i gruppi, poiché non è scontato che per tutti gli anni si rimanga nella stessa squadriglia, è anche possibile che essa venga cambiata);
  • eliminare l'utente (o renderlo, per lo meno, inattivo, in modo che non possa visualizzare le foto o i documenti riservati una volta uscito dal gruppo).
Dovrebbe essere tutto..
Ah, dimenticavo di dirvi che ho già provato con alcuni script e quant'altro a fare quanto ho detto sopra, ma non ho prodotto risultati, probabilmente sono altamente incapace XD

Ringrazio anticipatamente chi vorrà aiutarmi (sempre se c'è qualcuno disposto a farlo!)
 

macus_adi

Utente Attivo
5 Dic 2017
1.266
82
48
IT/SW
è possibile far sì che il campo email si inserisca automaticamente username@dominio.dominio (dove username è dinamico e corrisponde al campo prima, mentre @dominio.dominio è statico e rimane sempre uguale - ovviamente la mail non esiste, ma il cms la richiede obbligatoriamente per autorizzare l'utente ad accedere, quindi inseriamo una mail fasulla che poi essi potranno modificare)?
SI attraverso javascript potrai manipolare l'input.
-
è possibile generare automaticamente una password di una lunghezza stabilita?
SI, ma la password in chiaro o cifrata?
In chiaro = devi creare una funzioncina
Cifrata = substr(md5(time()),0,8);
-
Per fare ciò mi serve che il login sia collegato alla medesima tabella del database e che possa autenticare solo gli utenti attivi e appartenenti al gruppo indicato.
Perchè non utilizzate le sessioni?
-
ma pretendo di sapere la password di default assegnata per potergliela comunicare...
Il sistema dovrebbe inviare una email all'utente collegato contenente la password creata.
-

Per farla brave potresti optare per WP o JM, altamente personalizzabili e di facile gestione!