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 Perl Discussion :

Execution d'un Script PERL


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut Execution d'un Script PERL
    Bonjour a tous,

    J'ai écrit un petit script en Perl que j'aimerais vérifier. J'ai executé ce script avec l'interpreteur Perl sur mon PC,mais il n'ouvre pas de page HTML.

    Faut-il impérativement executer ce script sur un serveur Web ou se trouve l'interpreteur Perl ?

    Merci de votre réponse.

    Voici le script :

    #!c:/perl

    print("content-type : text/html\n\n");

    print("Hello World!");

    La premiere ligne donne le chemin où se trouve l'interpreteur Perl (sur mon PC)
    La deuxième ligne est sensée ouvrir une page HTML dans le navigateur
    La troisième ligne est sensée imprimer "Hello World" dans la page HTML

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu fais une grosse confusion... Ton code est typique d'un script CGI, c'est à dire un script destiné à générer une page HTML en réponse à une requête sur un serveur HTTP (comme Apache). Pour utiliser un tel script depuis ton navigateur, il te faut donc un serveur HTTP.

    Qu'est-ce que tu cherches à faire exactement (je ne te demande pas comment tu penses que tu devrais le faire mais plutôt ton but initial) ?

    --
    Jedaï

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    C'est peut être un Script CGI, mais interpreté par Perl.
    J'ai écrit ce petit script pour comprendre le fonctionnement du WEB dans un premier temps,
    et ensuite me lancer dans la construction d'un site Web,donc je fais des tests pour comprendre.

    J'ai écrit une page en HTML dans laquelle j'ai placé un bouton "envoyer",
    et lorsque je clique sur ce bouton, je fais appel au script CGI que j'ai ecrit,donc je devrais voir
    apparaître le message que j'ai écrit dans mon script CGI sur ma page HTML.

    Est-ce exact ?

  4. #4
    Membre éclairé Avatar de Vespasien
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 383
    Par défaut
    Fais plutôt du CGI en php dans un premier temps. Il y a plus de documentation disponible pour comprendre ce que tu souhaites assimiler.

    Je suppose que tu as installé et configuré correctement Apache.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Je suis sur AOL, et AOL m'a attribué un espace Internet où je peux stocker des pages HTML et des scripts ,donc je fais l'essai à partir d'AOL. En tapant http://pageperso.aol.fr/xxxxxx/formulai.htm
    Ma page Formulai.htm s'ouvre sans aucun problème,et lorsqu'elle s'ouvre je clique sur le bouton envoyer, pour appeler le script CGI,mais là,rien ne se passe.

    Bien sûr, je peux installer apache sur un autre PC, mais je pensais avant pouvoir tester au travers de mon espace Internet sur AOL

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Viladys Voir le message
    C'est peut être un Script CGI, mais interpreté par Perl.
    J'ai écrit ce petit script pour comprendre le fonctionnement du WEB dans un premier temps,
    et ensuite me lancer dans la construction d'un site Web,donc je fais des tests pour comprendre.

    J'ai écrit une page en HTML dans laquelle j'ai placé un bouton "envoyer",
    et lorsque je clique sur ce bouton, je fais appel au script CGI que j'ai ecrit,donc je devrais voir
    apparaître le message que j'ai écrit dans mon script CGI sur ma page HTML.

    Est-ce exact ?
    Il faut avoir mis le script CGI dans le répertoire cgi-bin de ton serveur, mais si tu as bien installé Apache, ça devrait aller, sinon, commence par installer XAMPP et le pack Perl pour XAMPP (y a des installeurs pour les deux, pas de problèmes) et place ton script dans le répertoire cgi-bin.

    --
    Jedaï

  7. #7
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Viladys Voir le message
    Je suis sur AOL, et AOL m'a attribué un espace Internet où je peux stocker des pages HTML et des scripts ,donc je fais l'essai à partir d'AOL. En tapant http://pageperso.aol.fr/xxxxxx/formulai.htm
    Ma page Formulai.htm s'ouvre sans aucun problème,et lorsqu'elle s'ouvre je clique sur le bouton envoyer, pour appeler le script CGI,mais là,rien ne se passe.

    Bien sûr, je peux installer apache sur un autre PC, mais je pensais avant pouvoir tester au travers de mon espace Internet sur AOL
    Hum... Les pages persos d'AOL n'ont pas l'air très ouvertes... Je ne sais pas si on peut y mettre du PHP et ça m'étonnerait franchement qu'on puisse y mettre des cgi. Mais comme par ailleurs on ne trouve aucune information sur l'hébergement à part comment utiliser l'un des créateurs de page proposé par AOL, je n'en sais pas plus.
    Enfin si tu veux faire du développement Web, même un minimum, je pense que tu peux aussi bien faire une croix sur AOL.

    --
    Jedaï

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Merci de ta réponse,c'est trés sympa.

    Question simple :

    Tu écris une page HTML dans laquelle tu fais appel à un script CGI .

    Comment testes-tu tout cela sans serveur ?

    Peut-on tester l'ensemble sur son PC ?

    Je ne vois pas ce que HTTP à à voir la dedans.

    Tu mets le fichier HTML et le script CGI dans le même répertoire , et normalement ça doit fonctionner !!!

  9. #9
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Viladys Voir le message
    Merci de ta réponse,c'est trés sympa.

    Question simple :

    Tu écris une page HTML dans laquelle tu fais appel à un script CGI .

    Comment testes-tu tout cela sans serveur ?

    Peut-on tester l'ensemble sur son PC ?

    Je ne vois pas ce que HTTP à à voir la dedans.

    Tu mets le fichier HTML et le script CGI dans le même répertoire , et normalement ça doit fonctionner !!!
    Non, ça ne fonctionne pas... A partir du moment où tu sors du HTML statique (donc ni CGI, ni PHP, ni ... juste du .html), tu as besoin d'un serveur HTTP comme Apache.
    Tu peux tester tes scripts CGI sur ton ordinateur en y installant Apache, par exemple en utilisant XAMPP dont je t'ai donné le lien, c'est complètement automatisé. Tu as également des solutions tout en un qui intègre un éditeur et un petit serveur HTTP (comme Komodo pour Perl).

    HTTP est le protocole par lequel discute un navigateur avec un serveur de page web.
    --
    Jedaï

  10. #10
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Cette ligne de commande, commande l'ouverture d'une page HTML, es-tu d'accord ?

    print "Content-type: text/html\n\n";

    Ma question :

    Quel programme execute cette commande ? c'est bien l'interpreteur Perl

    Pourquoi cette commande fonctionne sur une serveur HTTP (genre apache),et pas sur mon PC ? alors que j'ai l'interpreteur Perl.

    J'ai besoin de comprendre tout le mecanisme.

    Bien sûr, je pourrais me contenter de le faire fonctionner sur un serveur sans me poser de question,mais il me manquerait le pourquoi du comment ...!

    Voici mes deux fichiers


    Ma page HTML

    <html>

    <head>
    <meta http-equiv="Content-Type"
    content="text/htm; charset=iso-8859-1">
    <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
    <title>formulaire</title>
    </head>

    <body>

    <form action="essai.pl" method="POST">
    <p><input type="radio" name="couleur" value="J"> Jaune <input
    type="radio" name="couleur" value="R"> Rouge</p>
    <p><input type= submit value="Cliquer pour valider"></p>
    </form>

    </body>

    </html>

    ============================================================

    Mon script essai.pl dans le même répertoire

    #!/usr/local/bin/perl

    require 'cgi-lib.pl';

    &ReadParse(*in);

    print "Content-type: text/html\n\n";



  11. #11
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Viladys Voir le message
    Cette ligne de commande, commande l'ouverture d'une page HTML, es-tu d'accord ?

    print "Content-type: text/html\n\n";
    Non, cette ligne écrit "Content-type: text/html\n\n" sur la sortie standard, elle ne commande l'ouverture de rien du tout... Lorsqu'un script CGI est demandé à un serveur HTTP, il exécute ce script CGI en lui envoyant des informations sur l'entrée standard et en lisant la sortie standard. Cette ligne "Content-type: ..." lui dit que ce qui va suivre est du HTML et qu'il doit le retransmettre en tant que tel au client qui lui a demandé le CGI. Au final, le client reçoit sa réponse HTTP, laquelle lui dit que tout s'est bien passé pour sa requête et que le résultat est du HTML, puis lui donne la page HTML, que le navigateur du client affiche.

    Citation Envoyé par Viladys Voir le message
    Quel programme execute cette commande ? c'est bien l'interpreteur Perl
    Certes.

    Citation Envoyé par Viladys Voir le message
    Pourquoi cette commande fonctionne sur une serveur HTTP (genre apache),et pas sur mon PC ? alors que j'ai l'interpreteur Perl.
    Cette commande fonctionne aussi bien sur ton PC que sur le serveur (comme tu pourrais le vérifier en exécutant le script en ligne de commande), simplement elle n'ouvre absolument rien, elle se contente d'écrire une ligne de texte (sur ton PC comme sur le serveur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     #!/usr/local/bin/perl
     
     require 'cgi-lib.pl';
     
     &ReadParse(*in);
     
     print "Content-type: text/html\n\n";
    cgi-lib.pl a bien 15 ans... Au jour d'aujourd'hui on utilise plutôt le module CGI qui est bien mieux sécurisé et connaît les normes actuelles (et est plus efficace aussi) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/perl
    use strict; use warnings;
    use CGI qw/:standard/;
     
    print header,
      start_html('Titre de ma page'),
      h5('Hello world !'),
      end_html;
    __END__
    --
    Jedaï

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Effectivement j'ai essayé mon script CGI sur mon PC, ça fonctionne mais ça n'ouvre pas de page.

    Je vais essayé ce que tu as écrit en CGI.

    Mais peux-tu me donner ton avis sur ceci :


    Le fait d'écrire <HTML> dans une page provoque l'appel au navigateur Internet Explorer

    Si dans mon script écrit en Perl j'écris print "Content-type: text/html\n\n";, ça doit également provoquer l'appel du navigateur,
    car le type de contenu de la page est du texte HTML. ça devrait suffir à provoquer l'appel au navigateur par Perl

    si ce n'est pas le cas, alors comment ça fonctionne ? qui appelle le navigateur et par quel miracle ?

  13. #13
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Viladys Voir le message
    Le fait d'écrire <HTML> dans une page provoque l'appel au navigateur Internet Explorer
    Vraiment ? Et où donc exactement ?

    si ce n'est pas le cas, alors comment ça fonctionne ? qui appelle le navigateur et par quel miracle ?
    Personne n'appelle le navigateur, le navigateur établit une connexion avec un serveur HTTP, envoie une requête sur cette connexion et attend la réponse, qui spécifie quel est le type de document qu'on lui renvoie.

    A moins que tu ne veuilles parler du fait que quand tu double-clique sur un fichier html le navigateur s'ouvre ? C'est simplement parce que le logiciel dans lequel tu as double-cliqué sur l'icone du fichier a vu que l'extension du fichier était .html (ou .htm), et en a déduit qu'il devait l'ouvrir avec le navigateur web (ceci se configure dans les "Associations de fichiers" de explorer).

    --
    Jedaï

  14. #14
    Membre éclairé Avatar de Vespasien
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 383
    Par défaut
    Entraines-toi en installant apache. Inutile de disposer d'un second PC, serveur et client seront le même. Apache faisant le serveur, ton navigateur faisant le client.

    En lisant la doc d'apache tu vas vite comprendre ce qu'on essai de te faire comprendre. Quand çà fonctionnera, attaques toi alors aux spécificités d'AOL.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    En début de page.

    Le script que tu a écrit ouvre-t-il une page HTML ?

    Comme c'est un fichier xxx.cgi interpreté par Perl, est-ce "start-html" qui provoque l'ouverture d'une page HTML

    Si oui, où l'executer ?

    #!/usr/bin/perl
    use strict; use warnings;
    use CGI qw/:standard/;

    print header,
    start_html('Titre de ma page'),
    h5('Hello world !'),
    end_html;
    __END__


    Lorque je copie ce script dans un fichier avec le bloc note, et que le sauvergarde en essai.cgi,ensuite je l'execute sous Perl, Perl ouvre le bloc notre avec le contenu du fichier. Jaurais souhaité qu'il ouvre une page HTML et qu'il affiche "Hello World"

  16. #16
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Viladys Voir le message
    En début de page.

    Le script que tu a écrit ouvre-t-il une page HTML ?

    Comme c'est un fichier xxx.cgi interpreté par Perl, est-ce "start-html" qui provoque l'ouverture d'une page HTML
    Non, ce script est un script CGI, prévu pour être utilisé par un serveur HTTP, start_html() renvoie du code HTML, plus exactement l'en-tête, mais n'ouvre rien du tout.

    Pour ouvrir le navigateur, il faudrait d'abord écrire une page html statique sur le disque, puis appeler le navigateur dessus avec une commande système... Note bien que tu ne pourrais toujours pas utiliser de formulaires dans tes pages HTML, et que le script Perl ne serait absolument plus utilisable en tant que script CGI.

    je l'execute sous Perl, Perl ouvre le bloc notre avec le contenu du fichier. Jaurais souhaité qu'il ouvre une page HTML et qu'il affiche "Hello World"
    Non, s'il ouvre le bloc-note, c'est que tu ne l'exécute pas sous Perl... Sais-tu ce qu'est une ligne de commande ?

    --
    Jedaï

  17. #17
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Oui, je sais ce qu'est une ligne de commande. Je fais de la programmation depuis des années, je connais pas mal de languages,mais le Web est tout nouveau pour moi,alors j'essaie de comprendre son fonctionnement .

    De toute façon, je te remercie pour tes explications. C'était ce que je cherchais à comprendre.

    Bonne soirée et merci encore

Discussions similaires

  1. Diminuer le temps d'execution d'un script perl
    Par Isabella83 dans le forum Langage
    Réponses: 16
    Dernier message: 24/02/2012, 11h46
  2. Réponses: 1
    Dernier message: 16/04/2007, 15h14
  3. Executer un seul script Perl a la fois
    Par jean tof dans le forum Langage
    Réponses: 2
    Dernier message: 04/05/2006, 16h55
  4. chargement et execution d'un script perl
    Par Mokhtar BEN MESSAOUD dans le forum Langage
    Réponses: 1
    Dernier message: 14/03/2006, 16h31
  5. Réponses: 4
    Dernier message: 16/07/2004, 09h16

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