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

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : mai 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [web] Appeler un script PHP depuis un script PERL avec paramètre
    Bonjour ... bonsoir, bonne nuit ... je ne sais plus ... ,

    Je dois appeler un script en PHP depuis un script PERL en passant un paramètre.

    Quelqu'un a-t-il une idée ou peut-être qu'il y a une documentation quelque part ?

    Contexte :
    Un logiciel de paiement en ligne appelle un script PERL pour me retourner le résultat du paiement ... et je dois continuer le traitement en PHP en fonction du code reçu. Le tout se passe sur un serveur Apache sous Linux.

    Merci d'avance et à bientôt.

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 2 177
    Points : 3 161
    Points
    3 161
    Par défaut Re: Appeler un script PHP depuis un script PERL avec paramèt
    Hello, ( ça passe à toute heure )

    Citation Envoyé par tazmann
    Bonjour ... bonsoir, bonne nuit ... je ne sais plus ... ,

    Je dois appeler un script en PHP depuis un script PERL en passant un paramètre.

    Quelqu'un a-t-il une idée ou peut-être qu'il y a une documentation quelque part ?

    Contexte :
    Un logiciel de paiement en ligne appelle un script PERL pour me retourner le résultat du paiement ... et je dois continuer le traitement en PHP en fonction du code reçu. Le tout se passe sur un serveur Apache sous Linux.
    Comme d'habitude, en Perl, tu as plusieurs possibilités ...

    Il s'agit, ni plus ni moins, d'un appel à un processus externe à ton script Perl.

    Tu as, dans ce cas, 3 grandes familles de lancement :

    - La fonction "system" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system "ma_commande mes_paramettres";
    - Les backquotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mon_resultat = `ma_commande mes_parametres`;
    - Le traitement "file-like" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open SORTIE, "ma_commande mes_parametres|"; $mon_resultat = <SORTIE>; close SORTIE;
    Bien sûr, à toi de voir si tu veux réellement récupérer la sortie du processus appelé ... C'est peut être préférable, pour toi, si tu souhaite poursuivre son affichage et terminer ta page en CGI/Perl.

    Par contre, dans le cas ou tu n'as rien de plus à faire en Perl après l'appel à PHP et si c'est ce dernier qui se charge de la suite de l'affichage, tu as aussi la solution de substituer le processus PHP au Perl en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exec "ma_commande mes_parametres";
    die "Je n'ai pas réussi à lancer le script PHP"
    Ainsi, le contrôle passe directement de Perl à la commande passée (invocation du script PHP), pour ne revenir à Perl qu'en cas d'impossibilité de lancer la commande (d'où le message d'erreur invoqué avec die).

    Bonne continuation.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : mai 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci,

    C'est bien la dernière solution qui m'intéresse car lors d'un paiement une réponse "muete (sans affichage)" est envoyée via le processus PERL.

    Ceci de manière à éviter que la suite du traitement ne dépende pas de l'utilisateur dès lors que le paiement est valide.

    En effet celui-ci peut perdre sa connexion ou alors décider de ne pas continuer le processus quand bien même il a payé.

    Pour rester dans le concret, si mon sript s'appelle : after_payement.php (qui va mettre un flag "payement OK" dans une BD) il faut donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exec "after_payment.php?CODE=$CODE"; 
    die "Script PHP after_payment.php pas lancé";

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 2 177
    Points : 3 161
    Points
    3 161
    Par défaut
    Si la solution te convient, n'oublie pas alors de placer le tag [résolu] sur ton sujet en utilisant le bouton, en bas à gauche de l'interface quand tu visualises le fil de discussion en étant connecté.

    Merci et bon courage.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : mai 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    oups ... j'ai appuyé sur "envoyer" un peu trop tôt

    Cependant j'ai un doute, comment le serveur va-t-il savoir que c'est un script php.
    Je pense qu'il faudrait lancer la ligne de commande PHP, le problème c'est que je n'ai jamais pratiqué l'exercice, il doit aussi y avoir quelque chose sur la manière de transmettres les paramètres, alors je pensais à quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exec "php -f after_payment.php CODE=$CODE"; 
    die "Script PHP after_payment.php pas lancé";
    Est-ce que cela est correct ?

    Merci d'avance

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 2 177
    Points : 3 161
    Points
    3 161
    Par défaut
    Citation Envoyé par tazmann
    oups ... j'ai appuyé sur "envoyer" un peu trop tôt
    Ce n'est pas un problème

    Citation Envoyé par tazmann
    Cependant j'ai un doute, comment le serveur va-t-il savoir que c'est un script php.
    Je pense qu'il faudrait lancer la ligne de commande PHP, le problème c'est que je n'ai jamais pratiqué l'exercice, il doit aussi y avoir quelque chose sur la manière de transmettres les paramètres, alors je pensais à quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exec "php -f after_payment.php CODE=$CODE"; 
    die "Script PHP after_payment.php pas lancé";
    Est-ce que cela est correct ?

    Merci d'avance
    Le serveur ne sait pas forcément grand chose, hélas ... et aussi, il faut que tu disposes de droits d'exécution de commandes, dessus.

    Cet obstacle levé, si j'en crois :
    Citation Envoyé par php -h
    Usage: php [options] [-f] <file> [args...]
    php [options] -r <code> [args...]
    php [options] [-- args...]
    -s Display colour syntax highlighted source.
    -w Display source with stripped comments and whitespace.
    -f <file> Parse <file>.
    -v Version number
    -c <path>|<file> Look for php.ini file in this directory
    -a Run interactively
    -d foo[=bar] Define INI entry foo with value 'bar'
    -e Generate extended information for debugger/profiler
    -z <file> Load Zend extension <file>.
    -l Syntax check only (lint)
    -m Show compiled in modules
    -i PHP information
    -r <code> Run PHP <code> without using script tags <?..?>
    -h This help

    args... Arguments passed to script. Use -- args when first argument
    starts with - or script is read from stdin
    et ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exec "php -f after_payment.php CODE=$CODE"; 
    die "Script PHP after_payment.php pas lancé";
    Pour le "-f after_payment.php", c'est sans problème.

    Après, pour le traitement du "CODE=valeur", il faut voir comment PHP s'en tire avec les paramètres de script, mais ce n'est plus du Perl .

    En tout état de cause, avec une telle mécanique, il n'est plus possible de bénéficier du passage de paramètres au PHP avec les méthodes GET ou POST. Il faut tout traiter en options du script PHP ...

    Bonne continuation.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : mai 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette aide efficace et circonstanciée.

    Bonne continuation.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/02/2010, 06h34
  2. Appel et retour de script PHP depuis Delphi
    Par Pascal Fonteneau dans le forum Web & réseau
    Réponses: 5
    Dernier message: 25/08/2009, 09h57
  3. Appel du script PHP depuis une page HTML
    Par PHILIPPE59 dans le forum Langage
    Réponses: 13
    Dernier message: 25/11/2008, 15h46
  4. Appel d'un script PHP depuis PERL
    Par tazmann dans le forum Web
    Réponses: 7
    Dernier message: 09/11/2007, 02h12
  5. Appeler une fonction d'un script PHP depuis HTML
    Par barthelv dans le forum Langage
    Réponses: 31
    Dernier message: 27/12/2005, 11h25

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