Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    61

    Creare evento ad un certo orario

    Salve vorrei mandare un email ad una certa ora e per farlo ho buttato giu questo codice:


    codice:
    	$dataattuale=time();		$b_dataatuale=date('G', $dataattuale);
    
    
    				
    						
    		if($b_dataatuale == "8"){ // funzione orario
    
                         //codice invio email
    
                  }
    ovviamente quando accedo alla pagina contenente questo script il sistema verifica che siano le 8 del mattino ed invia l'email , ma questo avviene perche sono io che accedendo alla pagina do l'input al sistema di leggere il codice cosi che quando arriva al codice qui sopra esegue quest'ultimo.
    Vorrei sapere come posso fare per far si che php invii l'email a quel determinato orario che gli ho inserito e che ho stabilito io senza che mi debba collegare alla pagina contenente il file?
    In automatico per intenderci.
    Mi domandavo se la soluzione non potesse essere prendere l'orario in formato timestamp dal database ?
    Cambierebbe qualcosa se prendessi l'orario attuale dal database invece di fare la funzione time() ?

    Grazie dell'aiuto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Devi usare Crontab se sei su server Unix, Operazioni pianificate se sei su server Windows.

    Ovviamente lo puoi fare solo se chi ti da lo spazio web prevede l'uso di questi strumenti, per i piani gratuiti o basic di solito no, per quelli più avanzati solitamente si.
    Se puoi usarli li troverai nel pannello di controllo dello spazio web, o comunque chiedi al supporto tecnico del tuo hosting provider.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    61
    In realtà è un add-on che sto creando e avrei il bisogno di inserire questa opzione senza che sia influenzata dal tipo di server , nel senso che se poi lo devo rivendere non posso chiedere al chiedente o ai differenti clienti di far abilitare quell'opzione dal loro server , e se casomai il loro server non la vuole o può abilitare quell'add-on che creo non avrebbe utilizzo per loro.

    Esiste un altro modo per far si che si possa inviare un email non so per esempio tutti i lunedi alle 1 di notte? senza utilizzare il Crontab intendo.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Esiste un altro modo per far si che si possa inviare un email non so per esempio tutti i lunedi alle 1 di notte? senza utilizzare il Crontab intendo.
    Non hai scelta, Crontab od Operazioni pianificate.
    Da PHP non puoi farlo, è il server che deve chiamare lo script, come tu stesso hai già visto, per attivre uno script è necessario che qualcuno lo chiami, questo qualcuno deve essere il browser oppure il server stesso.
    Nessun plugin ti permette di fare una cosa simile, perché poi ti servirebbe qualcuno che avvii il plugin... e chi lo fa? Il pugin non può chiamare se stesso per attivarsi.

    Al massimo al tuo script puoi far generare il Cronjob o settare l'operazione pianificata.

    Non perdere tempo a cercare altre soluzioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    61
    ok non perdo tempo con altro, seguo il tuo consiglio.
    Come avrai intuito non ho mai utilizzato Crontab o Operazioni pianificate , mi servirebbe un aiuto.
    Credo che l'operazione da fare sia questa a questa pagina: http://www.html.it/articoli/php-e-cr...egli-script-3/ , giusto?
    Mi chiedevo se è questo il codice da inserire posso inserirlo gia nel codice che ho creato?
    Però leggendo non ho capito bene una cosa : ma il Crontab che utilizza nell'esempio:

    55 14 * * 4 php --q directory/cron.php
    dove va inserito?

    Grazie ancora per l'aiuto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    61
    Ti aggiungo che ho bisogno di poter impostare il CronTab giornaliero ( mandare un email alle ore 1 di notte) , settimanale( mandare un email tutti i lunedi ) e mensile ( mandare un mail il primo del mese) , se è possibile e non disturbo troppo potresti scrivermi il codice di come poter fare queste operazioni con il Crontab?

    Grazie

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Qui c'è una spiegazione un po' più completa, compreso come fare per attivare il cronjob.
    http://forum.html.it/forum/showthread/t-310412.html

    Per effettuare le 3 operazioni, basta che le scrivi una di seguito all'altra nello stesso file.

    Comunque, visto che non si tratta di PHP, ti sposto nella sezione Server.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    61
    Mi sono letto la guida che mi è stata postata , ma sicuramente sto sbagliando qualcosa , vi posto il codice che ho inserito :

    $UrlActive= "forum/";
    $urlRefresh = 'http://' . $_SERVER['HTTP_HOST'] .'/'.$UrlActive.'index.php?pages/Digest/' ;

    # apertura in scrittura di un file di log
    $log = fopen("../".$UrlActive."xenDigest/crontab.txt","w") or die ("Impossibile creare il file ");
    # scrittura della data corrente sul file di log
    $scrivi = fwrite($log,"44 12 * * * /usr/bin/lynx ".$urlRefresh);
    #chiusura del file
    fclose($log);
    Il file txt contenente il codice ( 44 12 * * * /usr/bin/lynx http://demo.netkingz.it/forum/index.php?pages/Digest/) viene inserito e scritto.
    il redirect viene fatto alla pagina contenente il codice php che contiene anche questo codice qui sopra postato.
    Ma non funziona , cosa sto sbagliando?

    Una cosa che non ho compreso bene è :
    ma quando io scrivo questo codice : 44 12 * * * /usr/bin/lynx http://demo.netkingz.it/forum/index.php?pages/Digest/ , l'url http://.... deve portare alla cartella contenente il file php o alla pagina che contiene anche il file php?
    Nel senso la pagina http://demo.netkingz.it/forum/index.php?pages/Digest/ è una pagina di contenimento del file php dove ho inserito il codice qui sopra riportato e non è il file vero e proprio.

    Spero di essermi spiegato ...

    Grazie dell'aiuto.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    61
    Ho provato a mettere anche il percorso che porta direttamente al file php nel Crontab file , ma nulla ... nessuno può aiutarmi?

  10. #10
    hai provato con l'utilizzo dello script tramite l'interprete?

    inserisci in alto del file questa riga #!/usr/bin/php

    puoi eseguire lo script in questa modalità:

    55 14 * * 4 php /home/username/www/cron.php

    il vantaggio di questa modalità è che non hai la necessità di inserire il file da eseguire sulla root pubblica del sito, puoi tenere il file anche nella cartella padre, tipo:

    55 14 * * 4 php /home/username/cron.php (su OS Centos, Fedora, RH)
    55 14 * * 4 php /var/www/vhosts/username/cron.php (su Debian, plesk ecc..)
    Hosting, VPS, SSL e Domini: https://www.blooweb.it

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 © 2024 vBulletin Solutions, Inc. All rights reserved.