PDA

View Full Version : [PHP] Eseguire automaticamente uno script


Alhazred
26-03-2009, 21:11
Sto scrivendo un'applicazione in PHP per un sito, c'è una tabella nel db che mantiene traccia di alcuni appuntamenti ai quali ci si può prenotare.

Bene, dovrei scrivere una funzione, da eseguire una volta al giorno, che acceda a tale tabella e cancelli gli appuntamenti scaduti. Semplice da realizzare una pagina che faccia una cosa simile, ma vorrei non dover accedere manualmente una volta al giorno a tale pagina.

Ho chiesto all'hoster se è possibile utilizzare Cronotab che mi risolverebbe il problema, la riposta è stata: i cronojob sul profilo entry sono disabilitati, ma sono abilitati sul profilo professional. Quindi in teoria servirebbe un upgrade del profilo.

Secondo voi, dire che i cronojob sono disabilitati vuol dire che è disabilitata una loro interfaccia che mi permetterebbe di gestire queste cose, oppure che non funzionerebbe neanche un programma che installo io?
Non lo chiedo a loro perché di sicuro mi risponderebbero che non c'è altro modo se non passando al profilo professional, anche se ciò non fosse vero.

In caso sia effettivamente indispensabile passare al profilo professional per usare i cronojob, posso risolvere il mio problema in un modeo diverso?

ndakota
26-03-2009, 23:12
non puoi farlo controllando data e ora del server in php?

vizzz
26-03-2009, 23:31
ma che tipo di accesso hai al server? è un virtual host? ssh?

non ho mai provato ma guarda qui:
http://www.djkaty.com/phpcron

Alhazred
26-03-2009, 23:39
non puoi farlo controllando data e ora del server in php?
Il problema è questo, che io sappia lo script contenuto in una pagina PHP viene eseguito se quella pagina viene visitata o se viene attivato in qualche altro modo mentr si naviga su altre pagine.
Se nessuno fa niente sul sito le pagine stanno là e non fanno niente, come faccio a dire a una pagina di controllare l'ora del server da sola?

kk3z
27-03-2009, 21:41
Puoi cancellare i dati ogni volta che vengono visualizzati, in base alla data attuale. Se non vengono visualizzati non hanno neanche bisogno di essere cancellati!

Per evitare di farlo ad ogni pagina eseguita, puoi memorizzare nel database la data in cui sono stati cancellati i dati, e alla pagina seguente eseguita controlli se è passato un giorno da quella data.