Newsgroup: it.comp.www.php
Titolo: Prima di cominciare..

....vorrei chiedere ai luminari del newsgroup.
Dovrei gestire degli abbonamenti a scalare, quindi basati su un criterio
temporale tipo "ogni colpo dura 24 ore, dopodichè ti scalo un punto".
Essendo degli abbonamenti "open", cioè senza data di scadenza prefissata, la
cosa mi impensierisce dal punto di vista della sicurezza.
Ho già un sistema di autenticazione basato solo su sessioni, quindi senza
controllo sull'unicità dell'abbonato (sic), ma sto per passare ad un
controllo tramite scrittura su db degli utenti loggati, con relativo
controllo temporale e di unicità.
La mia necessità è quella di gestire questi abbonamenti a scalare in maniera
tale che se l'utente, nel periodo di valenza del singolo hit, si scollega e
si ricollega per suoi motivi non venga addebitato, ma anche da evitare che
faccia il furbo e rimanga collegato in eterno senza consumare niente.
Qualcuno di voi ha già sperimentato qualcosa di simile e può darmi qualche
dritta/instradamento, prima che (come mio solito) imbocchi una strada
sbagliata e perda tempo prezioso...?
Grazie a tutti, Carlo.

 strada sbagliata e perda tempo prezioso...?
non ho capito.. crei delle sessioni di 24 ore ?? se e' cosi' e' assurdo.
cmq se e' tutto scritto su db qual'e' il problema? Quando l'utente si
collega la prima volta scrivi nel db chi si e' collegato e a che ora.
quando si ricollega fai una query sull'utente e vedi quanto tempo e'
passato. se son passate + di 24 ore vuol dire che l'abbonamento e' scaduto.
se ho capito bene la situazione questa potrebbe essere una soluzione.
darko
-- 
moio x la lyberta'
http://www.autistici.org/darko

 niente.
Quindi, se ho capito bene devi gestire due condizioni:
1) Gli eventuali login/logoff di un utente nell'arco delle 24 ore. Se questo
avviene non deve pagare nulla o comunque non gli addebiti nulla. Ok, che
vuol dire quello che ho scritto? :P
2) Evitare che qualcuno non faccia il furbo (impossibile da gestire)
restando collegato senza consumare niente. quindi uno loggato deve fare
qualcosa.
Credo di aver capito ben poco perň, per il punto 1, nel momento in cui uno
si logga e scrivi un record in una tua tabella pensp che ci sarŕ anche un
riferimento temporale in termini di data e ora. Al prossimo login del
medesimo utente vedi quando č stata l'ultima volta che si č collegato e
valuti che fare. Se sono passate 24 ore, se ne sono passate 13...non so che
devi fare.
Sarebbe utile perň che spiegassi un po meglio...io non ho capito una mazza
:P
Saluti...
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Saluti...
Spero di esserci riuscito :-)
Grazie, Carlo.

 Spero di esserci riuscito :-)
Si si, questa volta è andata molto meglio :))


.......
[TOTAL CUT]
.......
Grazie, sono stato un po' piů chiaro io, ma sei stato chiarissimo tu...
Erano proprio le informazioni che mi interessavano!
Avevo una vaga idea, ma sei stato cosě dettagliato da togliermi ogni dubbio.
Grazie ancora e grazie a tutto il NG.
Bye, Carlo.

 togliermi ogni dubbio.
Solo una precisazione. Quello che ho scritto io va poi affinato in base alle
tue esugenze ma stai attento che nel calcolare le 24 ore non puoi usare solo
la data di login, ma devi farlo in base all'ora.
Metti che uno si collega il 10/11/2003 alle 23.58 e si scollega l'11/11/2003
alle 00.10, se valuti le due sessioni considerando solo la data a questo
povero cristo gli levi due punti anche se č stato collegato solo 12 minuti e
non 24. Se devi considerare 24 ore effettive e non solari tieni presente
anche le ore oltre le date. Okz?
Poi dacci l'url, cosě adesso che tutti sappiamo come crei le sessioni ci
collegheremo e ti cracchiamo il sito collegandoci al prezzo di un solo punto
:P


 :P
Penso che farò un controllo solo sul giorno solare, ma ci devo pensare
su....Però un dubbio mi è venuto.
Cioè, se io utilizzo un sistema fatto così...?
-Login
-Controllo sul db utenti_online in base al campo userid
-Esiste già?
-Esiste ->Prelevo il campo DAY ->Confronto DAY con date()
-E' uguale?
-Si ->Non levare nessun punto ->Aggiorna il record sui campi DAY e
ORA_LOGIN ->Concedi privilegi
-No ->Leva un punto ->Aggiorna il record sui campi DAY e ORA_LOGIN ->Concedi
privilegi
-Non esiste -> Leva un punto ->Inserisci un record ->Concedi privilegi
...cosa potrebbe non funzionare (a parte il fatto che se gli cade la linea a
mezzanotte meno un minuto e si ricollega si mangia un punto in un minuto)?
Anche il campo LOGOFF, in fin dei conti, a cosa mi serve...? Se l'utente se
ne esce chiudendo il browser io non potrò mai saperlo.
Per quanto riguarda il controllo della sua attività penso che si possa fare
con un refresh sulle pagine, utilizzando come dicevi una funzione che
stabilisce quanto tempo è passato dal collegamento (oppure con un refresh su
un frame nascosto).
Salumi, Carlo.
Ah, l'URL...www.bancaditalia.it.... Se ci riuscite fate un fischio :-)