begin process at 2012 05 27 20:13:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FICHIER UNIQUE POUR DÉCLENCHEMENT WEBCRON

FICHIER UNIQUE POUR DÉCLENCHEMENT WEBCRON


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :cron, webcron, tâches, authentification http, neopioupious Niveau :Initié Date de création :12/11/2007 Date de mise à jour :12/11/2007 13:44:12 Vu :3 162

Auteur : supprend13

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Pour ceux qui n'ont pas accès à la crontable de leur hébergement et qui utilise un service du genre webcron.

C'est un fichier unique permettant de gérer différents cron basé sur un appel toutes les heures du fichier par un service de webcron.

Le fichier inclue un contrôle d'accès HTTP et affiche le nom des fonctions exécuter.

Cette version ne gère pas les arguments car je n'en ai pas besoin mais il suffit de changer presque rien pour que ça les gère.(cf explication call_user_func dans le manuel php)

Source

  • <?php
  • // liste des cron
  • function HelloWorld(){
  • echo "Hello World";
  • }
  • //crontab
  • $crontab = array(
  • array('hours'=>"ALL",'wday'=>"ALL",'mday'=>"ALL",'mon'=>"ALL",'year'=>"ALL",'name'=>"HelloWorld")
  • );
  • /*********************************************************************
  • Protection par mot de passe
  • **********************************************************************/
  • // on test si $_SERVER['PHP_AUTH_USER'] et si $_SERVER['PHP_AUTH_PW'] possède une valeur
  • // si c'est le cas on peux tester le login et le password
  • if ( (isset($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_USER'])) && (isset($_SERVER['PHP_AUTH_PW']) && !empty($_SERVER['PHP_AUTH_PW'])))
  • {
  • // on récupère le tout dans des variables
  • $PHP_AUTH_USER = strip_tags($_SERVER['PHP_AUTH_USER']);
  • $PHP_AUTH_PW = strip_tags($_SERVER['PHP_AUTH_PW']);
  • //verification des password
  • $user = $PHP_AUTH_USER;
  • $pwd = $PHP_AUTH_PW;
  • if($user!="user" || $pwd !="pwd"){
  • header('HTTP/1.0 401 Unauthorized');
  • echo 'Unauthorized';
  • exit;
  • }
  • }
  • else
  • {
  • // rien ne doit être sorti avant ceci
  • // on demande de s'identifier avec le texte $my_message
  • $my_message = "Login et mot de passe de connexion";
  • header('WWW-Authenticate: Basic realm="' . $my_message . '"');
  • header('HTTP/1.0 401 Unauthorized');
  • // en cas d'annulation
  • echo 'En cas de problème, contacter l\'aministrateur.';
  • exit;
  • }
  • /***********************************************************************/
  • /*
  • fonctionne avec un webcron ou cron activé toutes les heures.
  • hours : 0 - 23 + ALL pour toutes les heures
  • wday : 0-6 (dimanche à samedi) + ALL pour tous les jours
  • mday : 1-31 + ALL pour tous les jours
  • mon : 1-12 (janvier à décembre) + ALL pour tous les mois
  • year : n°année + ALL pour tous les ans
  • */
  • function activeCron($cron){
  • $active = false;
  • $now = getdate();
  • $h = $now['hours'];
  • $wd = $now['wday'];
  • $md = $now['mday'];
  • $m = $now['mon'];
  • $y = $now['year'];
  • //hours
  • if($cron['hours']=="ALL") $active = true;
  • else if($cron['hours']==$h) $active = true;
  • else return false;
  • //wday
  • if($cron['wday']=="ALL") $active = true;
  • else if($cron['wday']==$wd) $active = true;
  • else return false;
  • //mday
  • if($cron['mday']=="ALL") $active = true;
  • else if($cron['mday']==$md) $active = true;
  • else return false;
  • //mon
  • if($cron['mon']=="ALL") $active = true;
  • else if($cron['mon']==$m) $active = true;
  • else return false;
  • //year
  • if($cron['year']=="ALL") $active = true;
  • else if($cron['year']==$y) $active = true;
  • else return false;
  • return $active;
  • }
  • function runCron($cronName){
  • call_user_func($cronName);
  • echo "<br/>$cronName";
  • }
  • function runCrontab($crontab){
  • foreach($crontab as $cron){
  • if(activeCron($cron)) runCron($cron['name']);
  • }
  • }
  • runCrontab($crontab);
  • ?>
<?php
// liste des cron
function HelloWorld(){
	echo "Hello World";
}
//crontab
$crontab = array(
	array('hours'=>"ALL",'wday'=>"ALL",'mday'=>"ALL",'mon'=>"ALL",'year'=>"ALL",'name'=>"HelloWorld")
);
/*********************************************************************
Protection par mot de passe
**********************************************************************/
// on test si $_SERVER['PHP_AUTH_USER'] et si $_SERVER['PHP_AUTH_PW'] possède une valeur
// si c'est le cas on peux tester le login et le password
if ( (isset($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_USER'])) && (isset($_SERVER['PHP_AUTH_PW']) && !empty($_SERVER['PHP_AUTH_PW'])))
{
    // on récupère le tout dans des variables
    $PHP_AUTH_USER = strip_tags($_SERVER['PHP_AUTH_USER']);
    $PHP_AUTH_PW = strip_tags($_SERVER['PHP_AUTH_PW']);
	//verification des password
	$user = $PHP_AUTH_USER;
	$pwd = $PHP_AUTH_PW;
	if($user!="user" || $pwd !="pwd"){
		header('HTTP/1.0 401 Unauthorized');
		echo 'Unauthorized';
		exit;
	}
}
else
{
    // rien ne doit être sorti avant ceci
    // on demande de s'identifier avec le texte $my_message
    $my_message = "Login et mot de passe de connexion";
    header('WWW-Authenticate: Basic realm="' . $my_message . '"');
    header('HTTP/1.0 401 Unauthorized');
    // en cas d'annulation
    echo 'En cas de problème, contacter l\'aministrateur.';
    exit;
}
/***********************************************************************/

/*
fonctionne avec un webcron ou cron activé toutes les heures.
hours : 0 - 23 + ALL pour toutes les heures
wday : 0-6 (dimanche à samedi) + ALL pour tous les jours
mday : 1-31 + ALL pour tous les jours
mon : 1-12 (janvier à décembre) + ALL pour tous les mois
year : n°année + ALL pour tous les ans
*/
function activeCron($cron){
	$active = false;
	$now = getdate();
	$h = $now['hours'];
	$wd = $now['wday'];
	$md = $now['mday'];
	$m = $now['mon'];
	$y = $now['year'];
	
	//hours
	if($cron['hours']=="ALL") $active = true;
	else if($cron['hours']==$h) $active = true;
	else return false;
	
	//wday
	if($cron['wday']=="ALL") $active = true;
	else if($cron['wday']==$wd) $active = true;
	else return false;
	
	//mday
	if($cron['mday']=="ALL") $active = true;
	else if($cron['mday']==$md) $active = true;
	else return false;
	
	//mon
	if($cron['mon']=="ALL") $active = true;
	else if($cron['mon']==$m) $active = true;
	else return false;
	
	//year
	if($cron['year']=="ALL") $active = true;
	else if($cron['year']==$y) $active = true;
	else return false;
	
	return $active;
}

function runCron($cronName){
	call_user_func($cronName);
	echo "<br/>$cronName";
}

function runCrontab($crontab){
	foreach($crontab as $cron){
		if(activeCron($cron)) runCron($cron['name']);
	}
}

runCrontab($crontab);
?>

 Conclusion

Les commentaires sont synthétiques mais si ça peut servir à quelqu'un ...

Je suis ouvert à toutes les remarques.


 Historique

12 novembre 2007 13:44:12 :
explication version

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier
Source avec Zip [PHP5] TASKSCHEDULER, UN PETIT PLANIFICATEUR DE TÂCHE EN PHP... par LocalStone
TÂCHES AUTOMATISÉES - CRON par piep14

Commentaires et avis

Commentaire de supprend13 le 12/11/2007 13:47:56

Merci d'avance

Commentaire de LocalStone le 12/11/2007 20:20:53

Salut,
Tu devrais aussi regarder ma source : http://phpcs.com/codes/PHP5-TASKSCHEDULER-PETIT-PLANIFICATEUR-TACHE-PHP_44647.aspx. Je pense qu'il y a du bon à prendre dans nos 2 codes !
++ !
L.S.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

cron php [ par str ] Salut,Je suis a la recherche d'une commande pour executer un script php uniquement sur le serveur à partir d'une page php executée par un navigateur c declenchement automatique d'un script [ par moha013 ] est ce quelqu'un peu n'explique comment faire pour enclencher un script&nbsp; php&nbsp; automatiquement&nbsp; ,on ma parler&nbsp; de WEBCRON&nbsp; et& fonction PHP et CRON [ par garfield90 ] Bonjour, Voila mon probl&#232;me, Lorsque CRON fait touner un script PHP, je n'ai pas acces en autre aux fonctions mysql, ce qui est &#233;normement gestion du cron avec php [ par maxprog ] bonjour,mon probl&#232;me est le suivantj'ai des scripts php qui g&#233;n&#232;re des rapports en pdf et qui les envoit par mail par la suite, mais l' cron [ par zorkain ] bonjour,je viens de decouvrir le script de cron, qui permet d exectuer des scripts automatiquement a certaines heures.malhreusement je ne sais pas ce .cmd needed for cron [ par zzzzzz ] Bonjour,J'ai actuellement un .cmd &#233;x&#233;cut&#233; par un cron pour faire une sauvegarde de ma bdd... J'aimerai&nbsp; maintenant ouvrir un fichi simulation postage [ par supergyver ] Bonjour, J'ai une page &#224; laquelle je dois m'identifier r&#233;guli&#232;rement juste histoire de montrer que je suis toujours vivant... Pour cel accent .. [ par brezoneg ] Bonjour,Pour mettre &#224; jour une base je fait :INSERT INTO `autotable` VALUES (1, 'T&#226;ches');&#224; partir d'un fichier sql directement dans la Un cron sur CS? [ par pastis51forever ] Bonjour! Une idée comme ca: Ne serait-il pas possible de creer un cron sur CS? Vu le nombre de personnes qui se connectent à toutes heures, cela devra femer automatiquement IE [ par sidf ] bonjour a tous,je lance des tâches planifiées (ouverture de IE et execution d'une URL .php)est il possible (en DOS peut etre) de fermer automatiquemen


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales