Visualizzazione risultati 1 fino 18 di 18

Discussione: Consiglio per algoritmo

  1. #1
    Guest

    Predefinito Consiglio per algoritmo

    ciao gente.
    vorrei fare una cosa ma non so come procedere e volevo consultarmi con voi per un algoritmo da applicare.
    vorrei creare una notifica email del sito con la lista degli inserimenti fatti con successo nel sito stesso evitando di inviare però una mail per ogni inserimento ma invece, dopo un certo periodo di inviare una specie di resoconto di quanto inserito.

    mi potete dare un consiglio?
    al momento avevo pensato di creaer un banale file di testo con dentro scritto ora in formato time() e fare un controllo ad ogni inserimento e decidere di mandarlo arbitrariamente dopo un certo lasso di tempo.
    solo che la procedura non funzionerebbe se l'utente inviasse solo un oggetto nel sito perchè poi, non interagendo piu col sito non realizza alcuna condizione di refresh per avviare la procedura.

    voio che mi suggerireste?

    grazie e ciao ciao

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Purtroppo se nessuno accede al sito non può accadere nulla. E una limitazione che è difficile da aggirare. L'unica cosa che potrei consigliarti è che la procedura di invio delle eMail sia indipendente dall'utente che la richiama. Così hai più possibilità che venga inviata a tutti gli utenti.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Purtroppo se nessuno accede al sito non può accadere nulla. E una limitazione che è difficile da aggirare. L'unica cosa che potrei consigliarti è che la procedura di invio delle eMail sia indipendente dall'utente che la richiama. Così hai più possibilità che venga inviata a tutti gli utenti.
    eh ma con quale criterio?

  4. #4
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    puoi vedere se il servizio di webcron.org fa al caso tuo, o puoi anche prendere in considerazioni metodi differenti, come ad esempio creare un feed rss con gli ultimi aggiornamenti: saranno gli utenti stessi a scegliere quando richiedere la lista degli inserimenti, invece che ritrovarsi nuove email in casella.

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    puoi vedere se il servizio di webcron.org fa al caso tuo, o puoi anche prendere in considerazioni metodi differenti, come ad esempio creare un feed rss con gli ultimi aggiornamenti: saranno gli utenti stessi a scegliere quando richiedere la lista degli inserimenti, invece che ritrovarsi nuove email in casella.
    l'idea del feed mi interessa..
    mi sai indirizzare da qualche parte per capire come funziona, come integrarlo nel sito etc?

    grazie

  6. #6
    Guest

    Predefinito

    Spero di aver capito bene quel che vuoi...

    Provo a buttarti giù qualcosa per una notifica mensile.

    Questo script presume l'esistenza di una cartella chiamata resoconti con un file chiamato (per esempio in questo mese) '200803.txt'
    Codice PHP:
    <?php
    //questo ciclo controlla l'esistenza di un file nella cartella resoconti.
    //dovrebbe trovarne uno solo col nome 'annomeseultimanotifica' (ad es 200803.txt)
    while ($file = readdir('resoconti/')) {
    if(
    $file !='.' && $file !='..'){
    if(
    is_file($folderName.'/'.$file)){
    $vecchiofile=$file;
    }
    }
    }

    $contenuto=file_get_contents($vecchiofile);//resoconto vecchio mese...
    $data=date('Ym');
    $nuovofile=$data.'.txt';//nome dell'eventuale nuovo file


    if($vecchiofile != $nuovofile) {
    mail("mail","oggetto",$contenuto,"mittente");
    unlink($vecchiofile);
    file_put_contents('resoconti/'.$nuovofile,'');
    }
    ?>
    Questo script, se tutto va bene, dovrebbe andare, ma va inserito in una pagina che abbia almeno una visita al giorno in modo che possa essere attivato!

    Ho dato un nome alla cartella che puoi benissimo cambiare.

    Tutte le cose da notificare vanno scritte nel file
    'resoconti/'.date('Ym').'.txt'
    penso che tu sappia come!

    Se non capisci qualcosa o hai domande scrivi pure.

    Non l'ho provato e l'ho buttato giù di fretta...ci saranno sicuramente errori!

    Se nel frattempo qualcuno più esperto di me da un occhiata allo script e conferma sarebbe molto meglio!

    Ciao!
    Ultima modifica di gabriballets : 25-03-2008 alle ore 16.54.57

  7. #7
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    @lsdforum: creare un feed rss non è un'impresa titanica. E' un file xml, che contiene la descrizione di una serie di "eventi", e riferimenti e link a pagine sul tuo sito.

    Se tu lo aggiorni ogni volta che avviene un "inserimento", e dai il link ai tuoi utenti, questi possono controllarlo via browser, client di posta o lettore rss, e scoprire quali sono le ultime novità.

    Come integrarlo nel sito, beh, dipende dal sito ci sono un po' di discussioni vecchie sull'argomento, dagli un'occhiata. Se l'idea ti interessa prova a buttare giù qualcosa e poi se è il caso chiedi di nuovo

    @gabryballets: (parzialmente OT, cerco di limitarmi)
    interessante misto di sintassi php3 e php5 ma ci sono un po' di motivi per cui... "no no". Non è molto saggio "cercare" file, o salvare file vuoti in cui le informazioni stanno nel nome. A quel punto salvi un file con un nome fisso, e dentro ci scrivi la data. E se nel file ci deve essere il testo da inviare, non è bello poi cancellarlo così violentemente, per poi crearne uno nuovo. Dai inoltre un'occhiata alle funzioni glob() e touch(), ti saranno utili!

  8. #8
    Guest

    Predefinito

    grazie a tutti.
    ora ci penso un attimo.
    devo valutare come fare.

    pensavo ad una cosa:
    le mail da php possono essere mandate anche con un certo ritardo giusto?
    se tipo mi creassi un file di sessione che si aggiorna man mano che l'utente ci lavora sopra e poi dopo un certo tempo, invio la mail?
    si poteva metter un timer negli script vero?

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da lsdforum Visualizza messaggio
    [...]
    mi potete dare un consiglio?
    al momento avevo pensato di creaer un banale file di testo con dentro scritto ora in formato time() e fare un controllo ad ogni inserimento e decidere di mandarlo arbitrariamente dopo un certo lasso di tempo.
    [...]
    Secondo me il file txt di appoggio è inutile in quanto le informazioni le puoi attingere direttamente dal filesystem utilizzando una scandir (o metodo simile in php4) e successivamente la funzione fstat.

    Ciao

  10. #10
    Guest

    Predefinito

    resta comunque il problema della sincronizzazione con la mail.
    devo trovare un sistema di invio automatico non invadente.
    ma se uso sleep() semplicemente impallo una pagina e basta :)
    come posso fare?

  11. #11
    Guest

    Predefinito

    Secondo me sbagli a "sincronizzare" la mail dato che tu non vuoi inviare una mail ad ogni file caricato ma in un certo lasso di tempo.
    A questo punto devi definire il lasso di tempo (= n. giorni), fare uno script utilizzando scandir e fstat, selezionare i files che vuoi notificare nella mail (in base al "lasso di tempo" e alla data dell'invio dell'ultima mail) e spedire la mail.
    Questo script deve essere eventualmente lanciato inserendolo nella crontab (credo che con Altervista si riesca a fare).

    Ciao

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da golfox Visualizza messaggio
    Secondo me sbagli a "sincronizzare" la mail dato che tu non vuoi inviare una mail ad ogni file caricato ma in un certo lasso di tempo.
    A questo punto devi definire il lasso di tempo (= n. giorni), fare uno script utilizzando scandir e fstat, selezionare i files che vuoi notificare nella mail (in base al "lasso di tempo" e alla data dell'invio dell'ultima mail) e spedire la mail.
    Questo script deve essere eventualmente lanciato inserendolo nella crontab (credo che con Altervista si riesca a fare).

    Ciao
    il punto sta nelle ultime due righe della tua risposta.
    1) non voglio di certo essere io che manualmente invio la mail o avvio lo script.
    2) come funziona e cos'è il crontab di cui parli?

    grazie

  13. #13
    Guest

    Predefinito

    http://it.wikipedia.org/wiki/Crontab

    Su AV però non funziona ^_^

  14. #14
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Citazione Originalmente inviato da lsdforum Visualizza messaggio
    2) come funziona e cos'è il crontab di cui parli?
    cos'ho scritto nel messaggio numero 4 ?

  15. #15
    Guest

    Predefinito

    lol @SuperModeratore ^^

    cmq su AV non si può usare mi dite?

    allora siamo da capo :(
    l'unica è chiedere agli utenti di inviare la notifica a sto punto.

  16. #16
    Guest

    Predefinito

    Anche no.
    Puoi farti mandare una mail ogni n upload: in questo modo gli n upload sono il tuo "lasso di tempo". In sostanza l'n+1esimo upload si prende in carico il fatto di mandare questa mail.

    Altra soluzione possibile. Al pirmo upload caricato in un mese automaticamente mandi la mail; in questo modo il primo che carica in un determinato mese manda gli aggiornamenti del mese precedente (volendo lo puoi fare anche settimanalmente).

    Ciao

  17. #17
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    il webcron funziona anche su altervista, non vedo alcun problema. E' il servizio cron che non è disponibile - interno ad AV.

  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    il webcron funziona anche su altervista, non vedo alcun problema. E' il servizio cron che non è disponibile - interno ad AV.
    e come si usa?
    come posso fare?
    creo una pagina php che scansioni le cartelle e poi invii la mail e poi la linko in webcron? e lui al tot prende e la esegue?
    Ultima modifica di lsdforum : 26-03-2008 alle ore 16.46.06

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •