Ciao a tutti;
più che un aiuto vero e proprio avrei bisogno di qualche consiglio da parte di utenti più esperti perchè mi sento un po' confuso sugli argomenti in oggetto.
Ho appena finito di studiare un modulo di un corso php che sto seguendo e che tratta i seguenti argomenti:
- accesso a file di testo;
- funzioni;
- passaggio di parametri tramite query;
- coockie;
Per chiarirmi un po' le idee e verificare se tutto mi è chiaro ho provato a mettere tutto insieme e creare i moduli di registrazione e di login di un ipotetico sito web - pur sapendo che un vero sito web non usa di certo un .txt per memorizzare le informazioni... ma vabbè, questo abbiamo ora e questo usiamo...
Il funzionamento è il seguente:
-il modulo di registrazione salva i dati su un file di testo (iscritti.txt) e abbina per ogni utente un tkt alfanumerico casuale generato da una funzione creata da me; il formato è id|user|password|tkt;
-il modulo di login mi indirizza alla pagina home.php
-la pagina di home controlla l'esattezza dei dati di login (confrontandoli con iscritti.txt) e se corretti mi setta un cookie della durata di tot minuti;
-dalla pagina home posso accedere alle altre pagine protette, tramite link-query d'interrogazione in cui passo l'id dell'utente e il tkt generato casualmente, per evitare di passare in query direttamente la password o che l'utente possa tentare di accedere a pagine di altri utenti direttamente smanettando sulla query d'interrogazione (ad esempio modificando l'id nel link); La necessità di passare parametri in query nasce in previsione che ogni utente possa visualizzare dati ad personam nelle varie pagine protette e quindi devo sapere i dati di quale "id" scaricarmi dai vari file;
-in tutte le successive pagine controllo che il cookie sia valido e i parametri passati in stringa siano corretti, altrimenti do un messaggio di sessione scaduta, nel primo caso e di accesso irregolare nel secondo caso, e reindirizzo alla pagina di login.
Mi chiedo prima di tutto se i vari passaggi siano corretti.
Inoltre, questo meccanismo sebbene un po' contorto funziona alla perfezione, tranne nel caso in cui più utenti si registrano o si loggano contemporaneamente poichè in quel caso rischio di perdere coerenza sui file.
Ora mi è stato detto che per risolvere questo problema occorre utilizzare le sessioni.
Premesso che nel corso che ho seguito non ve n'è traccia e che quindi ho dato un'occhiata al materiale presente qui sul sito, ora che so a grandi linee come aprire, chiudere, passare parametri e recuperarli attraverso una sessione, in che modo mi si risolve il problema della perdita di coerenza su risorse condivise?
Inoltre fondamentalmente non mi è chiaro quando usare i cookie, quando le sessioni o quando il passaggio di parametre in query, per mantenere informazioni di stato relative al navigatore tra le mie pagine e risolvere il problema dello stateless.
Offro da bere a chi mi aiuta a chiarirmi le idee!!
Il prossimo modulo del corso tratta della gestione dell'invio di email tramite php e dell'sql, ma a questo punto non so se andare avanti in quanto mi sembra che quello che sto imparando è molto lacunoso...