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 :

Afficher le resultat d'un prog perl


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut Afficher le resultat d'un prog perl
    Bonjour,

    Dans une page php, je souhaiterai afficher le resultat d'un programme perl
    Comment faire, sachant que lorsque j'essaie via une balise script, ça fontionne pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="perl" src="pgm.pl"></script>
    Avec un exec(...); non plus ...
    le programme perl est dans mon repertoire "/cgi-bin/" et appellé en url dans le navigateur, il m'affiche bien une valeur
    Mon Apache2 tourne sous 2003 Server avec php5
    le module perl si cela peut aider ...
    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
    #! c:\Perl\bin\perl.exe
    print "Content-type: text/html\n\n";
    #
    use strict;
    use warnings;
    use Net::SNMP;
    #
    my $OID_TempCpu = '1.3.6.1.4.1.16.0.1.0';
    my ($session, $error) = Net::SNMP->session(
          -hostname  => shift || 'localhost',
          -community => shift || 'public',
       );
    #
       my $result = $session->get_request(-varbindlist => [ $OID_TempCpu ],);
    #
       if (!defined $result) {
          printf "ERROR: %s.\n", $session->error();
          $session->close();
          exit 1;
       }
       printf "%d",$result->{$OID_TempCpu}/100;
       $session->close();
       exit 0;
    Merci d'avance.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut
    Bonjour,

    Ton Perl doit s'exécuter coté Serveur, et non coté client. Les balises script retournée dans l'HTML s'exécuteraient coté client donc ça c'est normal que tu ne puisse pas le faire.

    Avec un exec php, tu dois pouvoir exécuter une commande système, comme un script Perl par exemple. Par contre le script n'aura pas accès à l'environnement CGI, tu sera en mode "système"...

    Ton problème est d'appeller un script cgi depuis une page php.
    Là je ne sais pas comment faire. :-(
    (peu-être un appel à file_get_contents('http://...') mais c'est pas très propre car tu vas refaire une requête http pour appeller un script en local)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par 50Nio Voir le message
    Bonjour,
    Ton problème est d'appeller un script cgi depuis une page php.
    Là je ne sais pas comment faire. :-(
    (peu-être un appel à file_get_contents('http://...') mais c'est pas très propre car tu vas refaire une requête http pour appeller un script en local)
    Bonjour,
    Et oui, c'est exactement mon Pb ... J'ai vu que l'on pouvait se servir de "Server Side Includes", mais avec des pages html !
    la solution que j'ai trouvé et qui rejoint un peu ce que tu préconise en terminant le post, c'est de faire un appel par "script" qui execute le perl.
    ce dernier crée un fichier relu par le php, mais avec un décalage ...
    Voilà un peu la solution, pas trop top :
    Dis moi ce que tu en penses ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function recup($event)
    {
    	$filename = "E:\site\www\cgi-bin\\".$event.".txt";
      $fp = fopen($filename, "r");
      $_event=fread($fp, filesize($filename));
      fclose($fp);
      return($_event);
    }
    echo'<script LANGUAGE="PerlScript" src="/cgi-bin/aff_tempcpu.pl"></script>';
    $t=recup("tempcpu");
    echo'<font face="Arial" size="1"><b>Température actuelle : '.$t.'°&nbsp;<font size="2" color="#ff0000"><SUP>*</SUP></font></b></font>';
    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
    #! c:\Perl\bin\perl.exe -w
    print "Content-type: text/html\n\n";
    #
    use strict;
    use warnings;
    use Net::SNMP;
    #
    my $OID_TempCpu = '1.3.6.1.4.1.16.0.1.0';
    my ($session, $error) = Net::SNMP->session(
          -hostname  => shift || 'localhost',
          -community => shift || 'public',
       );
    #
       my $result = $session->get_request(-varbindlist => [ $OID_TempCpu ],);
    #
       if (!defined $result) {
          printf "ERROR: %s.\n", $session->error();
          $session->close();
          exit 1;
       }
       open(TEMPCPU, ">tempcpu.txt") || die ("erreur de creation de fichier");
     
       print TEMPCPU $result->{$OID_TempCpu}/100 ;
       close (TEMPCPU);
       $session->close();
       exit 0;

Discussions similaires

  1. [rave report 5.0] afficher le resultat d'un calcul
    Par webbulls dans le forum Bases de données
    Réponses: 10
    Dernier message: 16/07/2009, 12h14
  2. Comment afficher le resultat d'une requete?
    Par Looping94510 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 11/02/2005, 08h42
  3. [langage] compiler un prog perl
    Par mike21 dans le forum Langage
    Réponses: 20
    Dernier message: 23/11/2004, 17h57
  4. Réponses: 4
    Dernier message: 03/11/2004, 12h09
  5. [web] afficher le résultat d'un script cgi en perl
    Par Leishmaniose dans le forum Web
    Réponses: 8
    Dernier message: 10/06/2004, 18h36

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