|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
26-03-2009, 21.09.00 | #1 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Eseguire in automatico script PHP
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? |
28-03-2009, 13.31.12 | #2 |
Young Promise
Registrato: 04-02-2006
Messaggi: 2.114
|
Forse il modo più semplice per farlo senza ricorrere ai cronjob è quello di eseguire la pulizia ad ogni accesso di qualsiasi utente, tenendone traccia tramite un file per evitare che venga ripetuta più di una volta.
Mi spiego meglio: ti crei una funzione, per esempio pulisci_tabella, che esegua la pulizia e tramite la funzione touch aggiorni la data di accesso ad un file che puoi chiamare a piacere (tipo last_cleanup). Poi, nella pagina principale del programma aggiungi una linea di codice del tipo: [php] if(fileatime('last_cleanup') < (time() - 86400)) pulisci_tabella(); [/php] In questo modo la tabella viene pulita al massimo una volta ogni 24 ore (86.400 secondi) e non hai rallentamenti nello script se non i pochi millisecondi necessari ad accedere al file sull'hard disk. |
28-03-2009, 14.30.48 | #3 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Grazie, stavo pensando di far avviare le operazioni sul db appena qualcuno avesse visitato una determinata pagina, in particolare quella che dovrebbe mostrare i dati aggiornati, ma pensando che l'operazione sarebbe stata effettuata ripetutamente e dalla seconda in poi senza motivo pensavo di abbandonare l'idea.
Adesso che mi hai detto questa cosa però proverò a fare come dici tu |
02-04-2009, 20.27.15 | #4 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Ho provato la soluzione che mi hai proposto, ma ha un comportamento strano.
Il codice che ho usato è questo Codice:
if(fileatime("..".DS."accesso".DS."cleanup.txt") < (time() - 86400)) { if(pulisci_prestazioni($db)) { touch("..".DS."accesso".DS."cleanup.txt"); } } Faccio il logout e mi riloggo con l'account di un utente, vado sulla pagina dell'utente in cui è presente questo codice e la funzione pulisci_prestazioni() viene eseguita di nuovo, anche se sono passati 2 minuti da quando è stato effettuato l'accesso al file dal codice presente sulla pagina dell'amministratore. Sembra come se l'accesso dipenda da qualcosa legato alla sessione piuttosto che all'ora di accesso al file. Dove può essere l'inghippo? |
04-04-2009, 12.56.40 | #5 |
Young Promise
Registrato: 04-02-2006
Messaggi: 2.114
|
Il codice sembra corretto. Prova a fare un po' di debug, per esempio controllando che la data di accesso del file venga effettivamente modificata
|
10-04-2009, 19.07.20 | #6 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Mah, pare che stia funzionando a dovere.
Forse quando ho notato il problema avevo aperto il file senza pensarci ed è cambiato l'orario d'accesso facendomi credere che ad accedere fosse stata la funzione touch. |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Script per il backup automatico | boyashi | Software applicativo | 3 | 15-10-2008 08.08.13 |
run script php | uluzzu | Programmazione | 9 | 17-07-2006 17.23.23 |
[LINUX] Eseguire script PHP con Apache | Downloader | Linux e altri Sistemi Operativi | 3 | 16-11-2005 16.09.09 |
[OK] Eseguire il codice php senza un server | Enrico204 | Software applicativo | 4 | 28-10-2005 16.24.26 |
PopUp Automatico in PHP | gionny | Programmazione | 0 | 03-02-2005 22.20.11 |