IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Executer un fichier php


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Executer un fichier php
    Bonjour,

    Je veux exécuter un fichier php à partir d'un moteur écrit en java dont voici le contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    public class Repeter {
     
        /**
         * @param args the command line arguments
         */
        Timer t;
     
        public Repeter() {
            t = new Timer();
            t.schedule(new MonAction(), 0, 1 * 1000);
        }
     
        class MonAction extends TimerTask {
     
            int nbrRepetitions = 3;
     
            public void run() {
                if (nbrRepetitions > 0) {
                    //System.out.println("Ca bosse dur!");
                    try {
                        URL url = new URL("Chaine de l'URL de la page php");
                        HttpURLConnection con = (HttpURLConnection) url.openConnection();
                        con.connect();
                    } catch (Exception e) {
                        System.out.println("Echec d'execution du programme.");
                    }
                    nbrRepetitions--;
                } else {
                    //System.out.println("Terminé!");
                    t.cancel();
                }
            }
        }
     
        public static void main(String[] args) throws Exception {
            // TODO code application logic here
            new Repeter();
        }
    }
    Je remarque que si je remplace la ligne de code 'con.connect();' par 'con.getContent();', la requète MySQL qui se trouve sur la page met à jour la base de données mais les autres 'include()' qui se trouvent sur la page php ne sont pas exécutés.

    SVP quelcun peut-il m'aider?
    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    C'est plutôt une question de php, je pense. Enfin, on comprend pas grand-chose ni à ce que tu programmes, ni à ce qui se passe avec le php.

    En Java, avec con.connect() tu vas te connecter au serveur web, mais sans encore lui dire quelle page tu veux. Autant dire que le serveur attend poliment que tu lui dises ce que tu veux, et ne fait rien.
    Avec con.getContent(), tu te connectes au serveur si c'était pas déjà fait, et tu lui demandes la page dénotée par l'URL. Le serveur va donc exécuter le php correspondant à cette page et te la renvoyer.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci M. Thelvin pour votre réponse.

    Considérant l'explication que vous m'avez donnée à propos de con.getContent(), mon programme PHP devrait marcher puisse que si je l'exécute avec un navigateur (c à dire si je tape l'URL en question dans la barre d'adresse du navigateur et je valide) ça marche.

    En effet mon programme a pour mission d'envoyer des mails de façon automatique à chaque fois que la date du jour est supérieure à celle enregistrée dans la base et de mettre à jour cette dernière dans la base. Mais le problème est qu'en PHP, il faut chaque matin exécuter le programme par un navigateur avant que le processus ne démarre. C'est ce qui me pousse à écrire un moteur en java qui, à chaque 30 min ou un temps bien défini, exécutera le programme PHP à ma place pour que je n'ai pas à le faire tous les matins. (la ligne 'nbrRepetitions = 3' de mon programme java est juste pour tester le fonctionnement du moteur pendant un nombre de fois.)

    Peut-être existerait-il un autre moyen pour le faire ou un apport par rapport à mon moteur? Si oui, SVP aidez moi.

    Merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Ben oui, normalement avec getContent() ça devrait marcher. C'est pour ça que je dis qu'il faut voir ce qui se passe côté php : peut-être qu'il exige tel ou tel header HTTP qu'on trouve souvent dans les navigateurs mais que HttpURLConnection ne fait pas.

    Citation Envoyé par nestorino Voir le message
    Peut-être existerait-il un autre moyen pour le faire ou un apport par rapport à mon moteur? Si oui, SVP aidez moi.
    Franchement, moi je me contenterais de créer un cron ou une tâche planifiée qui ouvre l'URL en question dans firefox, à horaires fixes. Quand l'outil existe déjà il ne faut pas le refaire, même si c'est simple à faire.

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Java pour ça c'est un peu de l'overkill.

    Un simple combo cron+curl sur le serveur PHP fera amplement l'affaire.
    Voire même de la planification directement en PHP: http://matthieu.developpez.com/execution_periodique/

    Ou encore http://docs.phpcoin.com/index.php/Cron

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Le problème étant évidemment que la plupart des serveurs PHP ne proposent aucun service de cron, ni strictement rien qui s'en approche de près ou de loin. D'où les deux seules solutions de s'en passer ou de les relancer avec un appel côté client -_-°.

    Il y a longtemps je connaissais des services en ligne qui acceptaient d'appeler une URL de son choix à horaires fixes, mais ceux-là sont fermés depuis longtemps.

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    http://www.cronjobs.org/

    Sinon pour du java il te suffit d'utiliser l'API httpclient et si tu veux faire de la planification directement en java tu as l'API quartz. Sinon pour de la planif tu as toujours Cron (Unix like) ou At (Windows).

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Une preuve de plus que je ne sais pas utiliser Google. Merci pour le lien .

Discussions similaires

  1. Executer un fichier php a partir d'Excel ?
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2010, 20h44
  2. executer un fichier .php seulement en ligne de commande
    Par navorinco dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 10/12/2009, 12h34
  3. [BATCH] executer une fichier .php
    Par pierre.coudert dans le forum Windows
    Réponses: 2
    Dernier message: 28/02/2007, 11h47
  4. Réponses: 3
    Dernier message: 05/11/2006, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo