Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MySQL] Script di "scadenza"

    ( Ero indeciso se inserire il post qui o nella sezione php, ma non avendo chiaro come risolvere il mio problema, ed essendo php ed mysql strettamente connessi... spero di aver fatto bene a postare qui :P )

    Allora, il problema è abbastanza generico, e non riesco a trovare delle info chiare a riguardo:

    ho una tabella che contiene i dati degli utenti e, tra questi, anche la data di registrazione di ogni singolo utente e una flag che identifica se l'utente è stato validato via e-mail.

    Vorrei che, se dopo 24 ore dalla registrazione di un utente, questo non ha ancora confermato la registrazione via e-mail, l'utente venga cancellato dalla tabella.

    Questo è necessario perché se un altro utente ha bisogno di quel nick lo possa usare se non è stato "rivendicato" in tempo.
    Ho pensato di fare così, l'utente resta nella tabella non confermato, a tempo indeterminato, sinché un altro utente non prova a registrarsi con quel nick;
    allora naturalmente parte lo script che controlla se il nick è già presente, e se è presente controlla se è stato validato;
    se non è stato validato controlla se sono passate 24 ore, e solo se questo è vero la nuova registrazione del medesimo nick va a sostituire quella precedente.

    Tuttavia, un ipotetico sito con tantissime visite e registrazioni (non è certo il mio caso) potrebbe andare incontro ad un numero eccessivo di utenti non autenticati dentro la tabella, e questo se non altro crea problemi di ordine e "pulizia".

    Quindi mi chiedevo se esiste un modo per far sì che uno script o qualcos altro (non ho davvero idea di cosa possa essere) elimini automaticamente le righe degli utenti non autenticati, se sono passate 24 ore circa.
    Non è necessario per forza un controllo preciso al termine delle 24 ore, perciò basterebbe uno script che parte automaticamente ogni ora e controlla gli utenti non confermati eliminando quelli per i quali sono passate 24 ore dalla registrazione.
    Lo script non è un problema, il problema è che so farlo partire solo manualmente o comunque quando un utente visita una determinata pagina, ma non mi sembra una buona soluzione.

    Ho letto dei "trigger" di MySQL ma non ho capito se posso utilizzarli nel server che ospiterà il mio sito (è uno di quei server gratuiti, non lo nomino per non fare pubblicità); come posso verificare velocemente se questi trigger funzionano, senza dover chiedere agli amministratori? Secondo voi sono una buona soluzione al mio problema?

    Grazie per la vostra pazienza XD

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Per quel che vuoi fare non serve un trigger.
    A partire dalla versione 5.1 di mysql sono stati introdotti gli eventi

    http://dev.mysql.com/tech-resources/...ql-events.html

    che permettono di pianificare l'esecuzione di query a intervalli di tempo prestabiliti.

    Se come immagino non disponi di questa funzionalità dovresti verificare se il tuo hoster consente l'esecuzione di cronjob che però esulano da questa sezione.

    Fatti una ricerca nella sezione php. C'è anche una pillola a riguardo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.