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

Langage PHP Discussion :

appel system dans une fonction


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 167
    Points
    167
    Par défaut appel system dans une fonction
    Bonjour à tous
    Je ne sais pas si je suis au bon endroit, veuillez me pardonner par avance, voir, le déplacer si besoin ou le supprimer.

    Je suis embêter, en php5, sur un petit serveur sous openwrt.
    Mon script php fonctionne, et celui ci fait un appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        function  envoi_au_recepteur($date_log, $exemple_de_texte) {
            // formatage du texte pour twitter
            $texte="$date_log: $exemple_de_texte";
            print "texte= $texte"; // pour debug                                
            $output = system("/usr/bin/python3 twitter.py $texte");
            print " erreur: $output";        // pour debug aussi
        }
    Mais, alors que mon code affiche bien $texte , je n'ai aucun retour pour l'appel system ,ni que le script python fonctionne, d'ailleur.
    Rien dans les log.

    Est-ce mon appel à system qui n'est pas approprié? Et dans ce cas, comment puis-je faire?
    Merci de votre aide.

    Cordialement.
    En console, l'execution de "/usr/bin/python3 twitter.py $texte" fonctionne
    Si tu ne sais pas: demande, si tu sais, partage.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essaie comme ça pour avoir l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    system("/usr/bin/python3 twitter.py $texte", $output);
    echo " erreur: $output";        // pour debug aussi
    Il est possible que tu es un problème de droit : l'utilisateur qui fait tourner le serveur n'a pas les droit d'execution.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    avez-vous essayé avec un script python simple qui affiche par exemple la valeur de l'argument ?

  4. #4
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 167
    Points
    167
    Par défaut
    Ah, je n'avais pas pensé aux autorisations!
    Qu'est ce qu'il faut être aveugle parfois pour louper ça !
    Merci pour vos suggestions.

    Remi.
    Si tu ne sais pas: demande, si tu sais, partage.

  5. #5
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 167
    Points
    167
    Par défaut
    désolé du retard de la réponse, mais...
    1/ le changement d'autorisation n'a pas résolu le problème
    2/ un code simple ne fonctionne pas non plus:

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/env python
     
    # formatage du texte: à faire en amont!!!
     
    import sys  
     
    texte = sys.argv[1]  
    print ( texte )
    exit (0)

    et la partie php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $output = system("/usr/bin/python3 test.py $texte");
    print " erreur: $output";

    et je n'ai aucun retour, ni l'affichage du print de python (ce qui aurait tendance à m'indiquer qu'il n'est pas executé) ni l'affichage de la valeur de retour (même constat que précédemment)
    Bref, je patauge.
    Pyhton est bien installé bien sur.
    Pourrait il y avoir un problème d’exécution de script par php sur openwrt (serveur uhttp et /usr/bin/php-fcgi) le reste du code php5 étant exécuté, je suppose qu'il n'y a pas (trop) de problème de ce côté.

    Merci de vos suggestions.
    Si tu ne sais pas: demande, si tu sais, partage.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    une autre essai à faire serait de mettre le chemin complet de test.py dans la ligne de commande pour être sûr que le bon fichier soit trouvé

  7. #7
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 167
    Points
    167
    Par défaut
    pas bête, effectivement.
    Mais est-ce que je ne devrais pas recevoir un commentaire dans les log php, au moins pour me dire qu'il ne trouve pas le script?
    A moins que ce soit python que devrait relever une erreur "pas de script" remontée à php, qui lui même la remonte dans ses log. En tout état de cause, point d'alerte dans les log.
    J'ai signalé que j'étais sur openwrt, mais c'est sur un cubiboard, avec une carte sd de 16go pour le système, et un disque dur de 500go pour les données, dont les log. Cela me permet de pas griller la carte sd. Mais OWRT n'est quand même pas toujours très loquace.

    Je tente de mettre le chemin complet ce soir.
    Si tu ne sais pas: demande, si tu sais, partage.

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    l'erreur est peut-être envoyée sur stderr donc pour la récupérer dans $output, essayez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $output = system("/usr/bin/python3 /chemin/test.py $texte 2>&1");
    print " erreur: $output";

  9. #9
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 167
    Points
    167
    Par défaut
    MERCI!
    Je n'ai pas pensé à redirigé les sorties d'erreurs...
    et effectivement, j'ai bien des erreurs
    sh: Humid.:: not found erreur: sh: Humid.:: not found
    Reste à contourner ça, mais cela c'est un autre problème.

    Vraiment, la dessus, j'ai pas été imaginatif pour trouvé la solution...

    Grand merci.
    Si tu ne sais pas: demande, si tu sais, partage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler datepicker dans une fonction externe
    Par Augustule dans le forum jQuery
    Réponses: 3
    Dernier message: 26/09/2013, 13h20
  2. Appel processus dans une fonction
    Par donovann dans le forum C
    Réponses: 2
    Dernier message: 03/02/2009, 14h08
  3. Réponses: 6
    Dernier message: 18/04/2007, 12h47
  4. appel d'un binaire systeme dans une interface graphique
    Par elbronziero dans le forum Tkinter
    Réponses: 4
    Dernier message: 18/04/2007, 11h01
  5. [langage] appel d'un tableau dans une fonction
    Par donny dans le forum Langage
    Réponses: 11
    Dernier message: 13/11/2006, 17h17

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