Rechercher : dans
Par :

Crontab et execution php

Dernière réponse le 17 oct 2008 à 12:57:25 oyer, le 20 oct 2004 à 17:59:55 
 Signaler ce message aux modérateurs

Bonjour,

je voulais savoir si il était possible de lancé une page php (envoie de mail) avec crontab.
Sachant que ma page se fermeras automatiquement au bout de 5mn.

merci de vos reponses

Meilleures réponses pour « crontab et execution php » dans :
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Introduction à PHP VoirQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

[Dal], le 20 oct 2004 à 18:24:22

Bonsoir Oyer,

J'ai le regret de te dire que je ne comprend rien à ta question :P

1.

Si j'essaye de deviner ce que tu veux et que je présume que c'est exécuter un script php que tu as en local sur ton ordinateur, et ce à partir de la ligne de commande, tu peux le faire avec le programme de ligne de commande php, comme çà :

php -f fichier.php

Consulte "man php".

S'il te faut des arguments à la ligne de commande, ajoutes les et récupères les avec les variables prédéfinies argv et argc (cf. http://fr2.php.net/reserved.variables).

Le fait que la page se ferme automatiquement ne donnera rien. C'est hors sujet car ton fichier php n'est pas exécuté dans un browser.

2.

Il y a des moyens plus orthodoxes de programmer des scripts destinés à la ligne de commande que de passer par PHP (bash, Perl par exemple).

3.

Si ce n'est pas ce que tu veux faire, exprime ton problème plus clairement s'il te plait.


Dal

Répondre à [Dal]

2

oyer, le 20 oct 2004 à 18:37:13
  • +1

:), ok je vais tenter une explication.

j'ai un fichier php qui lance des mail (si on peut dire ça comme ça) pour ma newletter mensuelle.
Et je voulais faire une tache pour l'executer genre une fois par mois, le premier samedi du mois par exemple.

Voila c tout c tres succin, mais je pense que tu as repondu a une part de mon interrogation sur le sujet.
Puisque que le fichier ne se lance pas dans un browser, c dont cela que j'avais peur. Pas de browser pas d'execution
DOnc le fait de ne pas avoir de browser n'empeche pas l'execution de mon fichier ?

Répondre à oyer

3

[Dal], le 20 oct 2004 à 18:43:57

Oyer,

PHP en ligne de commande va lancer les commandes PHP (donc tes commandes qui adressent un e-mail) et sortir *à l'écran* (standard output) le html et javascript produit par ton script PHP.

L'écran (en fait standard output) n'étant pas assez intelligent pour comprendre le javascript (je suppose que ta fermeture de page passe par une programmation javascript), il ne se passera rien de particulier.

Pour éviter de polluer les logs de cron avec les sorties de ton script PHP, une fois que tu as testé son bon fonctionnement, ajoute en fin de ligne de ton crontab :

 > /dev/null 2>&1



Dal

PS : j'ai réussi à deviner !!! Chuis trop fort moi des fois ! :D ;) :P

Répondre à [Dal]

4

oyer, le 20 oct 2004 à 18:47:53

Ok merci pour l'info, à tester !!!
effectivement je passe pas du javascript pour ma fermeture de fenetre mais c'etais dans la cas ou elle s'execute dans un browser.

Mais pourquoi me parles tu de PHP en ligne de commande ?

Répondre à oyer

5

[Dal], le 20 oct 2004 à 18:52:03

Parce que l'exécutable "php" qui se trouve sur ton ordinateur (chez moi il se trouve là /usr/local/bin/php) est une version ligne de commande de php.

Extrait de "man php" :

PHP(1) Scripting Language PHP(1)



NAME
php PHP Command Line Interface 'CLI'

SYNOPSIS
php [options] [ -f ] file [[--] args...]

php [options] -r code [[--] args...]

php [options] -- [ args...]


DESCRIPTION
PHP is a widely-used general-purpose scripting language that is espe-
cially suited for Web development and can be embedded into HTML. This
is the command line interface that enables you to the following:


En bref, c'est une version utilisable en ligne de commande des modules Apache php. Tu ne peux exécuter ces derniers que si Apache fonctionne. Avec PHP en ligne de commande, tu te passes de Apache.


Dal

Répondre à [Dal]

6

 k_rom, le 17 oct 2008 à 12:57:25

Je ne sais pas si c'est toujours d'actualité, en tout cas voici comment nous exécutons du PHP à parti de cron:

# m h  dom mon dow   command

15 6 * * * (php5 /var/www/INTERNE/crons/stats_parssing_logs.php)
30 6 * * * (php5 /var/www/INTERNE/crons/marquage_visite_aco.php)

Répondre à k_rom