Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

evenement planifie [reformulation]

5 réponses
Avatar
Gilles RONSIN
Salut,

Je gère un site de récupération de données d'appareils embarqués avec
WAMP5 V 1.6.4.

Une interface WEB permet de paramétrer les boitiers éparpillés dans
la nature et une page PHP permet de récupérer régulièrement les
données envoyées par les boitiers pour les stocker dans une base
mySQL.

J'aimerais que le site, qui contrôle ce qui entre, puisse envoyer
automatiquement un rapport régulièrement sur l'état de la base par
email.

Pour l'instant je ne vois que 2 solutions :
- Un pc qui poste un message particulier au serveur à l'heure H pour
déclancher la construction de l'email. Mais ça nécessite un pc
externe.
- Un script (par exemple VBSCRIPT) sur le serveur qui va lui même se
connecter à la base pour en extraire les données à poster, mais ça
nécessite d'installer un driver myODBC.

ou si c'est possible que le serveur (apache en l'occurence) lance la
fonction <?php mail() ?> à une heure donnée.

Est-ce possible ? si oui comment ?

Merci


--
Site : http://gilles.ronsin.free.fr
Recherches ciblées http://gilles.ronsin.free.fr/#search
Il est impossible pour un optimiste d'être agréablement surpris.

5 réponses

Avatar
P'tit Marcel
J'aimerais que le site, qui contrôle ce qui entre, puisse envoyer
automatiquement un rapport régulièrement sur l'état de la base par
email.

ou si c'est possible que le serveur (apache en l'occurence) lance la
fonction <?php mail() ?> à une heure donnée.


Le sujet concerne plus le fonctionnement du serveur que php. Cependant
tu trouveras des conseils toujours valables sur la FAQ de ce forum :
http://faqfclphp.free.fr/#rub4.4

Si le serveur tourne sous Linux, tu peux cadencer un traitement à
jours/heures fixes par la commande cron (crontab -e en ligne de
commande, ou dans le webmin pour les hébergements mutualisés). Sous
windows il est également possible de définir des traitements
automatiques (quelque part dans le panneau de configuration j'imagine).

L'autre solution consiste à utiliser un service web comme suggéré dans
la FAQ. Le service se limitera à lancer l'url à la périodicité souhaitée.

Dans tous les cas, php sera concerné seulement pour le codage du script
ainsi appelé périodiquement. Je te conseille fortement d'inclure un
garde-fou pour bloquer les envois en cas d'appels incessants.

Par exemple sous Linux :

$de = filemtime('dernier_envoi');
if($de !== false) {
# pas plus d'un mail toutes les demi-heures
if((time() - $de) < 60*30) {
die('désolé, précédent envoi trop récent: ' .
date('d/m/Y H:i:s', $de));
}
}
touch('dernier_envoi');


eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/

Avatar
thierry
- Un script (par exemple VBSCRIPT) sur le serveur qui va lui même se
connecter à la base pour en extraire les données à poster, mais ça
nécessite d'installer un driver myODBC.

VBSCRIPT donc serveur windows ?


peut être une tâche planifiée qui dont la lign de commande serait:
c:phpphp.exe $chemin_vers_le_script$monScript.php

et dans ton script tu utilises la fonction mail()

voilà

thierry

Avatar
Gilles Ronsin
P'tit Marcel a exposé le 27/04/2007 :

Salut P'tit Marcel,
Le sujet concerne plus le fonctionnement du serveur que php.
j'ai du mal encore à trouver la frontière


Cependant tu
trouveras des conseils toujours valables sur la FAQ de ce forum :
http://faqfclphp.free.fr/#rub4.4


Je vais étudier ça de près. Merci

Si le serveur tourne sous Linux, tu peux cadencer un traitement à
jours/heures fixes par la commande cron (crontab -e en ligne de commande, ou
dans le webmin pour les hébergements mutualisés). Sous windows il est
également possible de définir des traitements automatiques (quelque part dans
le panneau de configuration j'imagine).


Le serveur est sous W2K

L'autre solution consiste à utiliser un service web comme suggéré dans la
FAQ. Le service se limitera à lancer l'url à la périodicité souhaitée.

Dans tous les cas, php sera concerné seulement pour le codage du script ainsi
appelé périodiquement. Je te conseille fortement d'inclure un garde-fou pour
bloquer les envois en cas d'appels incessants.

Par exemple sous Linux :

$de = filemtime('dernier_envoi');
if($de !== false) {
# pas plus d'un mail toutes les demi-heures
if((time() - $de) < 60*30) {
die('désolé, précédent envoi trop récent: ' .
date('d/m/Y H:i:s', $de));
}
}
touch('dernier_envoi');

eça


En attendant les réponses, je me suis lancé dans un script en vbscript
qui réalise ce que j'attend. Il ne me restera qu'à le lancer avec le
planificateur de tâche une fois par mois.

Merci pour tout.

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelle astuce : Script de création de gestion des messages non lus
http://gilles.ronsin.free.fr/#nonlus
Il est impossible pour un optimiste d'être agréablement surpris.

Avatar
Gilles Ronsin
- Un script (par exemple VBSCRIPT) sur le serveur qui va lui même se
connecter à la base pour en extraire les données à poster, mais ça
nécessite d'installer un driver myODBC.




Salut Thierry
VBSCRIPT donc serveur windows ?
Vi


peut être une tâche planifiée qui dont la lign de commande serait:
c:phpphp.exe $chemin_vers_le_script$monScript.php

et dans ton script tu utilises la fonction mail()


Oui. C'est une solution. Mais j'ai comme je dois générer un fichier de
rapport au format Excel, je me suis tourné vers un script complet.

Merci pour ta suggestion

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelle astuce : Script de création de gestion des messages non lus
http://gilles.ronsin.free.fr/#nonlus
Il est impossible pour un optimiste d'être agréablement surpris.


Avatar
Thief13
VBSCRIPT donc serveur windows ?


A priori, comme il le dit lui même :

WAMP5 V 1.6.4.


W = Windows
A = Apache
M = MySQL
P = PHP