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 :

Problème multiple perl.


Sujet :

Web Perl

  1. #1
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut Problème multiple perl.
    Bonjour,

    Tout d'abord j'espère poster ce message au bon endroit.
    Je suis étudiant en Bio-informatique en première année de Master.

    On doit programmer en perl, un petit moteur de recherche (en HTML) sur un document XML. Jusque là pas trop de problème. Sauf que je n'ai pas le même environnement qu'à la fac, et que chez moi rien de marche.

    Je suis sous Windows vista.
    J'ai installé activeperl 5.8.

    Et là, je suis perdu. Je n'arrive pas à lancer mes fichiers .cgi. Je n'arrive pas non plus à les ouvrir sous un navigateur (I.E. ou Firefox).

    J'ai lu des posts sur le forum, je suis allé sur la F.A.Q mais je patoge.

    Je vous laisse un de mes scripts (qui marche à la fac)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/usr/bin/env perl
     
    @morceaux = split (/&/,$ENV{'QUERY_STRING'});
    foreach $morceau (@morceaux){
    	($n, $s) = split (/=/,$morceau);
    	$parametre{$n} = $s;
    }

    J'aimerai savoir comment le lancer, le faire marcher.
    Merci.

    Mon prof m'a dit de faire ça (Cf. en dessous) mais rien de marche, ou alors je n'y arrive pas, ou ne comprend pas ce qu'il faut faire.

    Tu lances ton script avec ton activeperl en redirigeant la sortie du prog perl dans une page html :
    C:\perl monscript.cgi > page.html Ensuite tu ouvres la page générée en file->open dans le navigateur.
    Pour un script cgi, qui attend un query_string, tu l'enleve de l'appel actuel à analyse_parametres et
    tu le remplaces par une chaine simple $queryque tu initialise à la main juste la ligne d'avant
    :$query = "mot=Mus+Cellule&balise=emph2" etc Bien-sur tu rediriges aussi la sortie de ce script vers
    un fichier html que tu visualises ensuite sur le navigateur.


    -----------------------

    J'aimerai aussi savoir comment metre apache, et MYSQL sous vista ?
    Car rien ne marche, et j'ai aussi un projet un SGBD, et je n'arrive à rien. J'aimerai pouvoir créer des tables, et interagir dessus (de façon simple).

    Merci.

  2. #2
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Par défaut
    Bon un début, tu peux installer easyphp.

    courage

  3. #3
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    oki, merci.

    Je vais essayé de le re-installer. Même si je n'ai pas tout compris dans son fonctionnement.

    Je ne sais pas, si il prend en compte perl .?

  4. #4
    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 onylink Voir le message
    oki, merci.

    Je vais essayé de le re-installer. Même si je n'ai pas tout compris dans son fonctionnement.

    Je ne sais pas, si il prend en compte perl .?
    Je te conseille d'essayer XAMPP, il supporte pas mal Perl si tu installes le kit de base plus le kit d'ajout Perl.

    Par ailleurs bien qu'il soit pédagogique de gérer le protocole CGI à la main pour ses premiers scripts, ne le fait surtout jamais pour un véritable script déployé en environnement de production ! Utilise le module CGI (ou même plutôt CGI::Safe) à la place.

    --
    Jedaï

  5. #5
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Oki, merci.. Je vais essayer ça..

    En ce qui concerne le code en lui même..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @morceaux = split (/&/,$ENV{'QUERY_STRING'});
    Vu que je suis sous vista, je dois changer le QUERY_STRING, non ?
    J'ai pas l'impression que ça marche chez moi. Je vois la page web, sauf que je vois ma première ligne de code : #!/usr/bin/env perl et un DATA à la fin.
    Mon script perl se lance, vu qu'il me sort les bons truc. Mais par contre il ne me lance pas mon deuxième code, quand je l'exécute..
    Il m'ouvre une fenètre avec la possibilité de le télécharger

    Je rappel qu'à la fac on travail sous l'inux (Kubuntu) et chez moi je suis sous Vista. Je suppose donc qu'il y a quelque modification à faire à mon code. Mais pour l'instant j'y arrive pas.

    Pour l'instant on doit se débrouiller sans module. Donc..

    Merci pour vos réponses.


    edit : avec XAMPP je n'arrive pas à accéder à mes .cgi
    Il me sort que je n'ai pas les droits !

    --

    Bru't

  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 onylink Voir le message
    Vu que je suis sous vista, je dois changer le QUERY_STRING, non ?
    Non.

    Citation Envoyé par onylink Voir le message
    Je rappel qu'à la fac on travail sous l'inux (Kubuntu)'t et chez moi je suis sous Vista. Je suppose donc qu'il y a quelque modification à faire à mon code.
    Normalement non, sauf éventuellement le shebang.

    Citation Envoyé par onylink Voir le message
    edit : avec XAMPP je n'arrive pas à accéder à mes .cgi
    Il me sort que je n'ai pas les droits !
    Où les as-tu foutu ces cgi ?

    --
    Jedaï

  7. #7
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Merci pour les réponses.

    Normalement, je les ai mis au bon endroit, j'ai suivi un tuto.
    Là je pars au ski, je ne sais pas si j'aurai le net là bas.

    Je repasserai à mon retour, en espérant y être arrivé.


    Merci et à bientot.

    --

    Bru't

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pour le shebang (première ligne du script), il faut qu'il soit adapté à ta machine.
    En l'occurrence, sur Windows, ça sera quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:/Perl/bin/perl.exe -wT

  9. #9
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Je vais essayer merci.


    Pour outre passer le problème, je tape à la main ce que devrai être la variable d'environnement (QUERY_STRING), et je transforme mon .cgi en page HTML.
    C'est pas très orthodoxe mais au moins, j'y arrive ^^

    La fac re-ouvre Lundi, je pourrai m'y remettre là bas.
    Vu que là j'ai pas trop le temps de tout tester, vu que les partiels approchent.

    En tout cas merci pour vos réponses.

    ---

    Bru't

  10. #10
    Invité
    Invité(e)
    Par défaut
    Le module CGI a une méthode param() très pratique pour obtenir et gérer les paramètres d'une requête http.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Merci..
    Mais je n'ai pas le droit d'utiliser de module. (enfin je crois)


    J'ai une petit question :
    est-ce qu'il est possible de mettre un "ou" (||) dans une expression régulière ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach $motcles (@motcle){
    				if($paragraphe =~ s|$motcles|$motcles2|g){
    				}
    				else {$valide="non";}
    J'aimerai que mon expression régulière un "ou" pour que ce soit :
    -Soit avec la première lettre du mot en minuscule.
    -Ou avec la première lettre en majuscule.

    Je vais tenter de le faire. Je sais comment mettre la première lettre en majuscule, mon seul problème est de savoir comment le faire comprendre à mon expression.

    -----
    Je pensais faire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($paragraphe =~ s¤$motcles¤$motcles2¤g || s¤$motcle2¤$motcle3¤g )
    Mais ça ne marche pas.
    En faite, si le premier marche il ne doit pas ce soucié du second.
    Mais si je met un &&, et que les deux ni sont pas ça va pas marché.


    edit :
    J'ai réussi en mettant un if imbriqué dans le premier. Mais ce n'est pas très beau je trouve. On doit pouvoir faire mieux.

    Merci


    --
    Bru't

  12. #12
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($paragraphe =~ s¤($motcles|$motcle2)¤<font color="#FF00FF">$1</font>¤g)

  13. #13
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Raaaaaaaaaaah il fallait en mettre qu'un de pipe alors..

    Je vais tenter ça.

    Merci

    --

    Bru't

  14. #14
    Invité
    Invité(e)
    Par défaut
    Tiens-nous au courant de la suite...

  15. #15
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut


    Ca marche.. Je vais peut-être avoir besoin de mettre plusieurs "ou".
    J'essayerai de les mettre à la suite. Sinon je ferai des if imbriqué.

    merci

    Pour l'instant j'ai plus de question. Je touche du bois

    --

    Bru't

  16. #16
    Invité
    Invité(e)
    Par défaut
    Dans la parenthèse, tu peux en mettre plusieurs.

  17. #17
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Ca marche pas très bien.
    Ya des bugs quand je fais comme ça.
    A la place, dans le même if, je met plusieurs expression régulière, et là j'ai plus de problème.

    Maintenant il me reste plus qu'à trouver de nouvelle amélioration à faire.
    Vu que c'est un projet noté, et qu'on est tous censé savoir faire le script de base, après pour améliorer la note, il faut améliorer le script.

    Et le plus dur reste à trouver les idées

    Merci.

    --

    Bru't

  18. #18
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Sorry pour le double post.

    J'ai un soucis avec le " . "

    J'aimerai mettre qu'un mot puisse se terminer par un point.
    Exemple avec le mot bleu

    Quand je le fait il me remplace le mot bleu par bleu. (avec un point)

    Quand je met un \ pour dé-spécialiser et que je relance, il garde le \. Donc je ne l'ai pas dé-spécialiser je pense.
    Résulat : bleu\.

    J'ai essayer avec
    Mais rien


    Enfin.. je patauge là.

    --

    Bru't

  19. #19
    Invité
    Invité(e)
    Par défaut
    Tu veux dire:
    Tu confonds le caractère point et l'opérateur de concaténation...

    Ou plutôt:

    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    $a =~ s/$a/\s$b\.\s/;

  20. #20
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Je voulais concaténer une chaine de caractère vide devant et une chaine de caractère avec un point dedans.

    Cette nuit j'ai eu une illumination, j'ai trouvé comment faire tout d'un coup en faite

    Merci


    --

    Bru't

Discussions similaires

  1. petit problème variable perl bizzare
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 08/04/2006, 02h01
  2. Réponses: 7
    Dernier message: 26/01/2006, 13h20
  3. Problème : incrémentation !! perl a fumé ?
    Par Ickou dans le forum Langage
    Réponses: 11
    Dernier message: 30/11/2005, 18h40
  4. problème avec perl Makefile.PL
    Par flores dans le forum Modules
    Réponses: 2
    Dernier message: 30/10/2005, 20h09
  5. Problème compatibilité PERL SH CSH
    Par minusette dans le forum Modules
    Réponses: 7
    Dernier message: 03/10/2005, 11h03

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