PHP en ligne de commande, traitement hebdo [presque RESOLU] - PHP - Programmation
Marsh Posté le 29-06-2004 à 14:09:30
Ton serveur est public ? Je veux dire par là qu'il est possible d'y accéder par le net ?
Si oui www.webcron.org
Sinon, pour ton accès à la base, n'as tu pas moyen d'accéder à la base en ligne de commande (script SQL) et ensuite seulement de lancer le PHP d'envoi de mail.
Si tu comptes faire de la production avec easyphp, je te conseille plutot xampp qui est plus sécurisé
Marsh Posté le 29-06-2004 à 14:19:21
Alors en fait, c'est pour un intranet, donc d'après ce que j'ai lu sur le site : ben non....
Et puis c'est surtout qu'une soulution en interne (car ça risque
souvent de changer d'avoir de ajouts etc ...)
Donc voilà .....
Par contre pour l'accès à la BD en externe je ne vois pas comment :
parce qu'en fait j'ai une liste d'utilisateur...
pour chaque utilisateur je fais une requête et je stocke dans un fichier puis
j'envoie le mail ....
et pour éviter d'avoir trop de fichiers, je crée puis j'écrase le fichier
généré au fur et à mesure que je parcours la liste des utilisateurs ...
donc .... voilà...
Marsh Posté le 29-06-2004 à 14:30:50
regarde cette adresse, je crois que tu as une solution pourt fermer tes fenêtres sans être là :
http://www.beyondlogic.org/solutio [...] ssutil.htm
Marsh Posté le 29-06-2004 à 14:42:50
MErci pour le lien !
mais c'est vrai que quand on y repense, si finalement on se retrouve
avec des tas de fenêtres qui s'ouvrent et qui se referment, est ce que j'arriverai à tout planifier :
entre lancer des applications puis fermer d'autres, sachant que si on lance par le navigateur, il faufrait qu'on soit sûr que le navigateur ne soit pas fermé avant d'avoir fini le traimenet php
(parceque je sens qu'il va être long)
Donc désolé ... si je réfléchi pas avant de poser des questions...
Donc pour le moment le problème est bien ciblé sur la ligne de commande ...
Marsh Posté le 29-06-2004 à 14:45:15
lancement des aplis à h, fermeture à h+1
1 heure cela devrait être suffisant non ? En plus pense soit à faire un fichier log pour vérifier la bonne exécution par la suite soit à envoyer un mail à l'admin qui lui donne le résultat du traitement
Marsh Posté le 29-06-2004 à 16:14:20
Finalement après des recherches et des recherches
(malgrès ton astuce sur le Beyond Magic, le problème
de la ligne de commande avec BD ne titillait)
j'ai trouvé un topic sur un forum, pour le moment j'ai pas
bien compris le comment
(réflexion à tête reposée à faire et regarder ce que fait les fonctions
utilisées)
c'est du bidouillage mais ça à l'air de fonctionner proprement :
(l'auteur le dit lui même : "it can be considerd cheating!" )
http://www.phpbuilder.com/annotate [...] id=1012940
en fait on passe par un fichier intermédiaire qui lit(fopen, puis
fpassthru) le script avec accès BD
qui a accès à la BD)
Donc voilà ... je continue un peu à chercher ...
MAis là au moins il y a plusieurs voies de secours.
Merci àT509
Marsh Posté le 29-06-2004 à 17:10:57
phpbuilder.com : |
Pour ceux à qui cela peut servir
Marsh Posté le 03-08-2004 à 13:15:16
J'ai utilisé wintask pour simuler les actions user.
+ son scheduler
Marsh Posté le 06-08-2004 à 16:27:08
vérifier si les variables d'environnement oracle snot bien définies ( tourve-t-il le ORACLE_HOME , ORACLE_SID etc) .
Marsh Posté le 06-08-2004 à 16:53:38
y en a un qui a pas vu qu en ligne de commande il ne prend pas le php.ini par defaut.....
php -c C:\chemin\php.ini -f index.php
Comme ca il prend ton php.ini avec tout les modules ke tu charges sinon fais un php -i en ligne de commandes tu veras ke t as que certains modules de base qui sont activés.
Par contre fais gaffe l execution script est plus lente ke l execution a travers apache, sur php.net il preconise de mettre le max_execution time a 0 ce ki est normal d un coté vu que tu ne vas pas servir des clients...
http://ch2.php.net/manual/fr/features.commandline.php
Marsh Posté le 29-06-2004 à 13:53:49
Bonjour !!!
Je rame depuis plusieurs jours sur un problème qui peut paraître simple
pour certains .... mais qui pour moi me parait ... une montagne...
Donc voici le contexte :
Serveur Win2000 avec EasyPHP avec PHP en version 4.2.0
en fait je souhaiterais faire un traitement hebdomadaire en PHP
(avec Accès à une BD Oracle et Envoi de mail)
Etape 1 (effectuée) : création du fichier qui interroge la base et envoie le mail
puis la reflexion pour savoir comment lancer le script chaque semaine
IDEE 1 : plannifier une ouverture du navigateur directement sur la page php
Problème : personne n'est là pour fermer les fenêtres
et lorsque je fais un <body onload="setTimeout('window.close()',50000);">
du fait qu'il ne s'agit pas de fenêtre ouverte par javascript :
il y a une message de confirmation bloquant
IDEE 2 : utiliser php en ligne de commande (là gros problème)
[que j'utiliserai dans un fichier .bat]
Problème : dans le fichier php.ini j'ai activé iconv.dll (j'ai lu ça quelquepart)
j'ouvre une invite de commande cmd.exe et pour tester :
je me place dans le répertoire php du serveur puis :
php.exe monscript.php (anvoi mail mais sans accès BD)
et ça marche ...
par contre quand je le fais avec la version accès à la BD
via l'inte de commande cmd.exe :
Connexion impossible car tnsname.ora non accessible etc...
or ce script via le navigateur fonctionne (puisque le tnsname.ora est bien configuré)
Donc je ne sais pas pour le moment mais je continue à chercher
Les docs que j'ai trouvé se rapportent surtout à Unix.
Dans ma version je n'ai pas de répertoire CLI ....
Faut il ajouter autre chose pour la BD?
Est ce que je m'y prends bien pour la ligne de commande ?
Donc voilà .... beaucoup de questions....
Merci d'avance !
Message édité par knemo le 29-06-2004 à 19:57:42