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 :

Question sur les CGI [Débutant(e)]


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut Question sur les CGI
    Bon comme le dit le titre j'ai uen question de noob sur les CGI.
    J'ai bien compris que les cgi sont lancé quand on à une rl dont le nom se termine en .cgi

    Le soucis que j'ai, c'est sur une appli existante dont je dois faire un peu évoluer le code. Dans l'URL, il n'y a pas de nom de page.

    exemple :

    http://monmachin.com/dossier/dossier/info?param=valeur.....

    Là pas de nom de fichier dans lequel taper. je ne sais pas trop si c'est une erreur ou bien si c'est normal. Si vous avez une idée je suis preneur.

    Une autre question : est ce qu'à la place de l'extension .cgi, je peux avoir du .pl vu que mes scripts seront écris en perl?

    Merci d'avance pour vos réponse.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 167
    Par défaut
    Citation Envoyé par danathane Voir le message

    Une autre question : est ce qu'à la place de l'extension .cgi, je peux avoir du .pl vu que mes scripts seront écris en perl?

    Merci d'avance pour vos réponse.
    Pour la première question, je ne vois pas, pour la deuxième, ça dépend de la configuration du serveur. Pour Apache, il doit falloir trouver la ligne du fichier httpd.conf qui permet de préciser la liste des extensions permises pour les scripts cgi.
    Nibroc

  3. #3
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Il suffit de bien configurer ton serveur pour définir les extensions prises en compte pour les CGI comme le dit nibroc : donc oui tu peux avoir des scripts en .pl pour faire fonctionner tes cgi.
    En même temps les extensions ne sont pas si importantes que ça : .pl .cgi... du moment que ton serveur sait de quoi il s'agit

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    ok d'accord.
    Mais est ce que dans le script perl je peux l'enregistrer en .pl? c'est des questions stupides je sais.. mais heu vu que j'en ai jamais fait je demande

    bon pour la configuration du server c'est bon pas de soucis les CGI ont l'air de marcher pour bugzilla (oui j'ai installé bugzilla en mode CGI et nickel chrome)

    Par contre j'ai rajouter un test.cgi dans le quel j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "hellow word!\n";
    et bah.. heu apache me sort ce message d'erreur :


    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    est ce que vous auriez une idée de pourquoi ca marche pas?

    merci d'avance

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 167
    Par défaut
    Citation Envoyé par danathane Voir le message

    Par contre j'ai rajouter un test.cgi dans le quel j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "hellow word!\n";
    et bah.. heu apache me sort ce message d'erreur :



    est ce que vous auriez une idée de pourquoi ca marche pas?

    merci d'avance
    Dans ton test.cgi, il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/usr/bin/perl -wT
    print "Content-type: text/html\n\n" ;
    print "hello word!\n";
    il faudra peut-être adapter la première ligne.
    La deuxième ligne est indispensable, elle dit au serveur qu'il doit générer une page html avec ce qui suit, sinon il ne sait pas quoi en faire.
    Il vaudrait mieux que le script génère aussi les balises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html><head> ....</head>
    <body>
        ...
    </body>
    </html>
    Nibroc

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    ah bah voui là d'un coup ca marche mieux.
    Merci pour la solution

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    salut tout le monde!!
    j'aurais encoe une question pour vous!
    j'ai mon scriot index.cgi qui fait un require vers un header.cgi au début.
    Le truc c'est que le index.cgi me donne une erreur 500 alors que le header.cgi quand je l'appelle seul fonctionne. est ce que vous auriez une idée du pourquoi du comment?

    merci d'avance pour vos idées Je tiens à préciser qu'il s'agit du code source de bugzilla change log

    index.cgi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    #!/usr/bin/perl -w
     
      require "header.cgi";
       require "footer.cgi";
    header.cgi
    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
     
    #!/usr/bin/perl -w
     
      use lib ".";
      require "config.cgi";
     
    ###############################################################################
    # USUALLY NO NEED TO EDIT ANYTHING BELOW THIS LINE
     
    # @@@@@@ NON-USER EDITED VARIABLES @@@@@@
     
      our $verCurrent;
     
    # @@@@@@ DATABASE CONNECT @@@@@@
     
      use DBI;
      our $dbh = DBI->connect("DBI:mysql:$db:$host:$port", $user, $pass);
     
    # @@@@@@ GET/POST QUERY STRING SUBROUTINES @@@@@@
     
      sub populateQueryFields {
        %queryString = ();
        our $tmpStr = $ENV{ "QUERY_STRING" };
        @parts = split( /\&/, $tmpStr );
        foreach $part (@parts) {
          ( $name, $value ) = split( /\=/, $part );
          $queryString{ "$name" } = $value;
        }
      }
     
      sub populatePostFields {
        %postFields = ();
        read( STDIN, $tmpStr, $ENV{ "CONTENT_LENGTH" } );
        @parts = split( /\&/, $tmpStr );
        foreach $part (@parts) {
          ( $name, $value ) = split( /\=/, $part );
          $value =~ ( s/%23/\#/g );
          $value =~ ( s/%2F/\//g );
          $postFields{ "$name" } = $value;
        }
      }
     
    # @@@@@@ DISPLAY HTML & RESULTS @@@@@@
     
    print "Content-type: text/html\n\n";
     
    print "
    <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
    <html xmlns=\"http://www.w3.org/1999/xhtml\">
    <head>...

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Edit double post voir triple post

    Donc j'ai trouvé l'erreur... le require "header.cgi" va chercher le fichier dans le c:\Perl\... au lieu d'aller le chercher dans le dossier courant de index.cgi.
    Dans header.cgi la ligne "use lib ".";" permet de remédier à ce problème. mais vu qu'elle n'était aps dans index.cgi bah fallait la rajouter.

    maintenant ca marche bien mieux

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

Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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