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

Web Perl Discussion :

Appeler script perl depuis php/html


Sujet :

Web Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Appeler script perl depuis php/html
    Bonjour.

    Tout d'abord je tiens à préciser que j'ai déja éplucher la multitude de post traitant de l'appel de l'execution de script .pl par le biais d'interface web , mais aucun n'a réussi à résoudre mon problème.

    J'ai donc un script .pl que je veut lancer depuis une url du type https://.../perl/monscript.pl.

    J'ai donc une petite page html du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head>
    </head>
    <body>
     
    <FORM action="https://xxx/aff.pl" method=POST>
    <INPUT type="submit" value="MOULINETTE!!">
    </FORM>
     
    </body>
    </html
    Cependant , quand je clique sur le bouton , mon navigateur me propose uniquement de télécharger ce fichier. Or , moi je souhaite le lancer uniquement.

    Voici mon script :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #!/usr/bin/perl
     
     
    use CGI;
    use warnings;
    use strict;
    use Net::LDAP;
    use DBI;
     
    ############# DB ################
     my $BaseDeDonnees = "/var/lib/asterisk/astsqlite";
     my $NomHote       = "localhost";
     my $login         = "";
     my $MotDePass     = "";
    #################################
     
    ############LDAP################
    my $ldap = Net::LDAP->new("x",port =>389, version => 3) or die "Impossible de contacter le serveur $@";
    my $mesg = $ldap->bind("cn=Manager,dc=x,dc=fr",password => "toto");
    $mesg->code && die $mesg->error;
    ################################
     
     
     
    #=====db
     
    my $dbh=DBI->connect( "dbi:SQLite2:dbname=$BaseDeDonnees;host=$NomHote;",,)
        or die "Connection impossible à la base de donnees $BaseDeDonnees !";
     
    my $sth = $dbh->prepare("SELECT lastname,firstname,number FROM userfeatures");
     
    $sth->execute();
    my @row=$sth->fetchrow_array;
     
      print "\n## Debut de la recuperation des utilisateurs Asterisk ##\n\n";
     while (@row = $sth->fetchrow_array)
     {
            print "@row[0..2]\n";
     
     
     
    $mesg = $ldap->add("cn=@row[0,1],ou=asterisk,dc=x,dc=fr",
            attr => [
     
                        cn => "@row[0,1]",
                        sn => "@row[0,1]",
                        homePhone => $row[2],
                        displayName => "@row[0,1]",
                        objectClass => ['top','AsteriskSIPUser','inetOrgPerson'],
            ]
                            );
     
      }
      print "\n## Fin de la recuperation ##\n";
    Commment faire pour que , dés que je clique sur mon bouton , le script se lance ?

    J'imagine que mon problème vient de l'utilisation de CGI , mais je ne comprend pas trop son utilisation.

    J'ai tenté de faire un petit programme tout bete utilisant CGI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/usr/bin/perl
    #
    use strict; use warnings;
    use CGI qw/:standard/;
     
     print header,
       start_html('Page de test : Hello world !'),
         p('Hello world !'),
           end_html;
    Mais le résultat est le meme , la navigateur me propose de télécharger le script et ne me l'execute pas

    Best regards,

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Regarde dans tes logs d'apache.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Mon error_log est vierge et mon acces_log m'indique pas grand chose à part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    10.132.1.9 - - [29/Sep/2009:16:07:36 +0200] "POST /service/ipbx/moulinette.pl HTTP/1.1" 200 1381 "https://x/service/ipbx
    /lala.php" "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.11) Gecko/2009061613 CentOS/3.0.11-2.el5.centos Firefox/3.0.11"
    Je vois donc juste que mon formulaire fonctionne et que je récupère en post mon fichier .pl.

    Mais je n'ai aucune piste pour savoir pourquoi il ne s'exécute pas

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Ton serveur apache est il configuré pour du cgi ?

    Que te donnes ce script ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/perl
    use warnings;
    use strict;
    use Carp;
    use CGI;
     
    my $cgi = new CGI;
    print $cgi->header();
    print "cgi-bin ok!\n";
    print $cgi->end_html();

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Je te dirais sa demain 9h , j'ai finit le boulot la

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour , problème résolu , j'ai ajouter dans apache2.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AddHandler cgi-script .cgi .pl
    ScriptAlias /cgi-bin/ /monfolder/
    Ensuite j'ai renommé mon script .pl en .cgi et tout marche à merveille

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par wopsy Voir le message
    Voici la réponse quand je tape ton script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Content-Type: text/html; charset=ISO-8859-1
     
    cgi-bin ok!
     
    </body>
    </html>
    Apparemment tout est bon , mais je ne comprend pas toujours pas pourquoi mon navigateur me propose de télécharger le script .pl et pas de l'executer ?

    Dois-je le renommer en .cgi ? Ou faire autre chose ?
    Qu'entends tu part tout est bon, il t'affiche une page web correcte ? Il te la propose en téléchargement ? Ton serveur apache est il bien configurer ? Peux tu nous montrer ton fichier de configuration (section cgi-bin) ?

    Merci

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Problème régler Djibril j'ai éditer mon précédent post Merci pour ton script , il m'a aiguiller vers la solution :>

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par wopsy Voir le message
    Bonjour , problème résolu , j'ai ajouter dans apache2.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AddHandler cgi-script .cgi .pl
    ScriptAlias /cgi-bin/ /monfolder/
    Ensuite j'ai renommé mon script .pl en .cgi et tout marche à merveille
    Normalement ton script devrait également fonctionner avec l'extension .pl. Sinon

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/03/2012, 23h10
  2. [SQL] Executer un script SQL depuis php
    Par sly3333 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/12/2007, 01h33
  3. appeler un script perl depuis un script perl
    Par wizaord dans le forum Langage
    Réponses: 3
    Dernier message: 21/02/2007, 09h51
  4. [Système] Lancer un script perl avec PHP
    Par pepite dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 12h30
  5. Réponses: 4
    Dernier message: 01/06/2005, 17h01

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