Temporizzare il link di conferma attivazione profilo

mickey123

Utente Attivo
17 Gen 2015
59
0
6
salve ragazzi,

come si può fare per temporizzare il link di attivazione profilo, che viene inviato via email in fase di registrazione ad un sito, in modo che dopo un certo tempo pre-stabilito, esso sia inutilizzabile? E quali sono i metodi più sicuri e più usati professionamente?
 
se ho capito la tua necessità,
registri nel db il giorno e l'ora di invio della mail
ed al momento dell'attivazione verifichi la differenza dei due momenti,
agendo di conseguenza
ciao
Marino
 
se ho capito bene, tu dici così:

// se il link viene cliccato entro ad es. due ore esatte, praticamente dalla data di registrazione, attiva l'account

// altrimenti dai errore

ma come faccio a fargli verificare la differenza oraria? con un cookie forse?
 
Io non ho capito proprio quel che vuoi fare tu, ma nella pratica se ti registri ad un servizio, ad un forum come questo ad esempio, quello che fai dopo aver riempito il forum con i tuoi dati e premuto invio, la procedura è questa:

FORM [invio] --> formattazione dell'email di conferma, registrazione in un database del record contenente i dati utente, e in un record i dati di invio ( data/ora ) invio dell'email e attesa.
Se non c'è risposta da parte dell'utente dopo un certo tempo si può: rinviare l'email di conferma dopo 24 ore, cancellare l'iscrizione.
Se c'è risposta si controlla dal database che sia non sia passato il tempo massimo, di solito 24 ore, se passato si rinvia al modulo di iscrizione.
Se si è dentro i tempi, si cancella il record di attesa, si mette un flag di avvenuta iscrizione nel record dei dati utenti e si manda una email di conferma con account e password per la prima iscrizione.

Basta che altro vuoi? :)
I tempi li fa l'utente, non il programma, l'unica cosa che puoi fare, anzi devi fare, è tramite il cron ( programma del server ) mandare in esecuzione un programma che prende l'ora di sistema, apre i record con i flag di richiesta di iscrizione e confronta gli orari, se uno di questi passa oltre un'ora prestabilita, di solito 24 ore, li cancella.
Per il per attivare un programma tramite cron devi averne l'accesso e questo di solito avviene solo se paghi un hoster, solitamente i server gratuiti non lo danno.
 
l'unica cosa che puoi fare, anzi devi fare, è tramite il cron ( programma del server ) mandare in esecuzione un programma che prende l'ora di sistema, apre i record con i flag di richiesta di iscrizione e confronta gli orari, se uno di questi passa oltre un'ora prestabilita, di solito 24 ore, li cancella.
Per il per attivare un programma tramite cron devi averne l'accesso e questo di solito avviene solo se paghi un hoster, solitamente i server gratuiti non lo danno.

io ho un dominio con Aruba, devo chiedere all'assistenza su come fare per attivare questo programma o tu sai x caso se si può fare anche autonomamente? poi mi ci vorrebbe un piccolo aiuto con il codice se riesci :) l'attivazione del programma, si può fare anche in locale tipo con Xampp (Mac)?
 
se ho capito la tua necessità,
registri nel db il giorno e l'ora di invio della mail
ed al momento dell'attivazione verifichi la differenza dei due momenti,
agendo di conseguenza
ciao
Marino
Marino come faccio a calcolare la differenza dei due momenti? si può verificare anche tra due date() , cioè tra due date, se sono passate ad es. più di 24 ore? oppure bisogna stare a calcolare il timestamp?
 
PHP:
// data ripresa da dove é stata memorizzata alla registrazione
$DataRegistrazione = new DateTime('2015-12-22 18:16:12');

// data attuale, coincidente con il momento dell'attivazione
$DataAttivazione   = new DateTime('now');  

$intervallo        = $DataAttivazione->diff($DataRegistrazione)->format('%Y - %m - %d - %H - %i - %s');

print $intervallo."<br /> <br />";
( a parità di fuso orario )
 
Ultima modifica:
eh..solo che la sintassi a oggetti non l'ho ancora fatta.. si può fare anche con la sintassi normale?
 
Io non ho capito proprio quel che vuoi fare tu, ma nella pratica se ti registri ad un servizio, ad un forum come questo ad esempio, quello che fai dopo aver riempito il forum con i tuoi dati e premuto invio, la procedura è questa:

FORM [invio] --> formattazione dell'email di conferma, registrazione in un database del record contenente i dati utente, e in un record i dati di invio ( data/ora ) invio dell'email e attesa.
Se non c'è risposta da parte dell'utente dopo un certo tempo si può: rinviare l'email di conferma dopo 24 ore, cancellare l'iscrizione.
Se c'è risposta si controlla dal database che sia non sia passato il tempo massimo, di solito 24 ore, se passato si rinvia al modulo di iscrizione.
Se si è dentro i tempi, si cancella il record di attesa, si mette un flag di avvenuta iscrizione nel record dei dati utenti e si manda una email di conferma con account e password per la prima iscrizione.

Basta che altro vuoi? :)
I tempi li fa l'utente, non il programma, l'unica cosa che puoi fare, anzi devi fare, è tramite il cron ( programma del server ) mandare in esecuzione un programma che prende l'ora di sistema, apre i record con i flag di richiesta di iscrizione e confronta gli orari, se uno di questi passa oltre un'ora prestabilita, di solito 24 ore, li cancella.
Per il per attivare un programma tramite cron devi averne l'accesso e questo di solito avviene solo se paghi un hoster, solitamente i server gratuiti non lo danno.

non ti ho chiesto tutta questa pappardella che conosco già, rileggi bene! :) Il Cron (chiesto adesso ad Aruba) è disponibile solo su server dedicato.. tu li hai i soldini per permettetelo?
 

Discussioni simili