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 :

cgi et bio perl


Sujet :

Web Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 39
    Points
    39
    Par défaut cgi et bio perl
    Bonjour

    Alors voilà j'ai un script cgi dans lequel j'utilise le module bioperl (Bio::SeqIO), le seul problème c'est que le script ne s'exécute pas complètement. Il s'arrête au moment d'ouvrir le fichier fasta, alors que sans passer par CGI, ce script tourne très bien, j'ai bien installé le module bioperl et celui de cgi...
    Je ne comprends pas d'où vient le problème...
    voici le code :

    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
    #!"C:\Perl\bin\perl.exe"
     
    use warnings;
    use CGI;
    use strict;
    use Bio::SeqIO;
     
    my $cgi = new CGI;
    print "Content-type: text/html\n\n";
    print "début ok\n";
     
    my $file = $cgi->param("fichier");
    print "récup ok\n";
     
    my $in  = Bio::SeqIO->new(-file => $file, '-format' => 'Fasta');
    print "module bio ok \n";
     
    my $c = 0;
     
    while ( my $seq = $in->next_seq()){
     
    	$c++;
    }
     
    print "Bonjour vous avez <b>".$c."</b> séquences dans le fichier".$file;
     
    exit 0;
    dans mon naviguateur il s'arrete simplement et affiche "début ok // récup ok"..

    Merci d'avance à qui pourra m'aider à sortir de cette impasse !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    tu as des erreurs dans tes logs apache? (error_log)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 39
    Points
    39
    Par défaut oups ...
    Coucou

    oui j'ai pas pensé à regarder...
    Voilà ce qu'il m'affiche:

    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] , referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] ------------- EXCEPTION -------------, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] MSG: Could not open Trypsin_keratin_uniprotKB.fasta: No such file or directory, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] STACK Bio::Root::IO::_initialize_io C:/Perl/site/lib/Bio/Root/IO.pm:273, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] STACK Bio::SeqIO::_initialize C:/Perl/site/lib/Bio/SeqIO.pm:437, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] STACK Bio::SeqIO::fasta::_initialize C:/Perl/site/lib/Bio\\SeqIO\\fasta.pm:94, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] STACK Bio::SeqIO::new C:/Perl/site/lib/Bio/SeqIO.pm:355, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] STACK Bio::SeqIO::new C:/Perl/site/lib/Bio/SeqIO.pm:368, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] STACK toplevel C:/xampp/cgi-bin/script.cgi:15, referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] , referer: http://localhost/page.html
    [Tue Aug 05 17:11:51 2008] [error] [client 127.0.0.1] --------------------------------------, referer: http://localhost/page.html

    du coup je comprends mieux, le chemin que je récupère via le formulaire html n'est pas complet...
    voilà mon code html:

    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
    <!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" xml:lang="fr" lang="fr-FR">
     
     
    <head>
    	<title>Test CGI </title>
    		<link rel="stylesheet" type="text/css" href="TC.css" />
    </head>
     
    <body>
    <p> Hello! </p>
    <p>Veuillez sélectionner votre fichier fasta :</p>
    <FORM NAME="form" ACTION="../cgi-bin/script.cgi"
    METHOD="POST">
    <INPUT TYPE="file" NAME="fichier">
    <INPUT TYPE="submit" VALUE="Envoyer">
    </FORM>
    </body>
    </html>
    mais bon je vois pas comment récupérer un fichier autrement que par le input file....
    merci de ton aide

  4. #4
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $file = $cgi->upload("fichier");
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $in  = Bio::SeqIO->new(-fh => $file, -format => 'Fasta');
    Consulte la doc du module CGI pour plus de détails.

    --
    Jedaï

  5. #5
    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
    Soit tu utilise la methode cgi comme te l'as mis jedai, soit tu rajoute dans ta balise html form le code suivant pour que les fichiers uploadé soient pris en compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ENCTYPE="multipart/form-data"
    c'est à dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <FORM NAME="form" ENCTYPE="multipart/form-data" ACTION="../cgi-bin/script.cgi"
    METHOD="POST">

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 39
    Points
    39
    Par défaut
    Merci pour votre aide à tous les deux !
    Je vais tester illico !

    En tous cas merci de m'avoir décoincée !!

    EDIT: c'est bon en mettant les 2 ça roule super bien !! Encore MERCI!!

    PS: je vais essayer de trouver la bonne doc CGI (le lien donné par le site renvoie plutôt vers ceux qui veulent créer une page html à partir de cgi, alors que je voudrais juste faire un appel... enfin bon je vais m'adapter ...)
    PS2: bon en fait c'est moi qui est pas réveillée... il y a bien la fonction upload dans la doc du lien, j'ai juste pas lu assez loin après le '$query=>filefield'... désolée du dérangement !

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

Discussions similaires

  1. CGI R et Perl
    Par socaw dans le forum Web
    Réponses: 14
    Dernier message: 08/08/2011, 17h05
  2. Perl CGI et VI perl toolkit
    Par Pierrot2612 dans le forum Langage
    Réponses: 0
    Dernier message: 16/11/2007, 16h00
  3. Réponses: 4
    Dernier message: 16/07/2004, 09h16
  4. [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
  5. Réponses: 2
    Dernier message: 19/06/2003, 13h48

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