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

Modules Perl Discussion :

Comment fournir les fichiers de données au module CGI::Graph?


Sujet :

Modules Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Comment fournir les fichiers de données au module CGI::Graph?
    Bonjour à Toutes et à Tous,

    Je souhaite réaliser une application qui va créer interactivement des histogrammes et les afficher sur le web. J'ai trouvé sur le site du CPAN, le module CGI::Graph qui semble convenir à ce que je souhaite faire. Mais, en testant le premier exemple qui figure dans le SYNOPSIS (http://search.cpan.org/~mchang/CGIGr...ph.pm#SYNOPSIS), le script n'arrive pas ouvrir le fichier csv contenant les données. Le message d'erreur obtenu après exécution du script en ligne de commande est le suivant:
    Cannot open table.csv to read at C:/Perl/site/lib/Data/Table.pm line 928
    Data::Table::fromCSV('table.csv') called at C:/Perl/site/lib/CGI/Graph.pm line 15
    CGI::Graph::new('CGI::Graph') called at E:\essaicgigraph.pl line 22
    Je résume brièvement comment j'ai procédé:
    -j'ai créé un fichier csv que j'ai nommé table.csv. Le délimiteur utilisé est la virgule. Ce fichier est dans le même dossier que le script. J'ai testé ce fichier avec le module Data::Table et il fonctionne bien.
    -j'ai copié-collé le code de l'exemple du SYNOPSIS dans un fichier que j'ai appelé essaicgigraph.pl

    Je voudrais savoir comment fournir le fichier csv au script pour qu'il puisse le lire. Pouvez-vous également me donner les mêmes indications sur le fichier intitulé MyFile dans l'exemple du SYNOPSIS ?

    Informations complémentaires qui pourraient éventuellement être utiles:
    1. j'ai intallé l'interpréteur Perl 5.8.8 et le serveur Apache.
    2. Dans le message d'erreur ci-dessus, les deux premères lignes concernent les modules que j'ai déclaré en en-tête du module. Seule la troisième ligne renvoie à mon script.
    3. Voici le début du 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
      #!C:\Perl\bin\perl.exe -w
       
      use CGI::Graph;
      use CGI;
      use Data::Table;
      use GD::Graph;
      use GD;
       
      $q = new CGI;
       
      $q->param('source',"table.csv");   # assign specific parameters
      $q->param('myFile','select.dat');
      %hash = $q->Vars();                # get hash from CGI object
      $plot = new CGI::Graph(\%hash);     # create new CGI::Graph object


    Je m'excuse d'avoir été long. C'est la première fois que je poste un message sur ce forum et je voulais donner le maximum d'informations.

    Je vous remercie d'avance pour votre attention.

  2. #2
    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
    Tu es sur quel OS ?

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Tu es sur quel OS ?

    --
    Jedaï
    Je suis MS Windows Vista.

    Merci.

  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
    Citation Envoyé par ALLMAG54 Voir le message
    Je suis MS Windows Vista.
    Il pourrait s'agir d'un problème de droit, ton fichier table.csv est-il lisible par tous ? Par ailleurs, lances-tu bien ton script à partir du répertoire où se trouve table.csv ?

    --
    Jedaï

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Il pourrait s'agir d'un problème de droit, ton fichier table.csv est-il lisible par tous ? Par ailleurs, lances-tu bien ton script à partir du répertoire où se trouve table.csv ?

    --
    Jedaï
    Salut,

    La fichier des données (table.csv) et le script essaicgigraph.pl se trouvent tous deux dans le même dossier cgi-bin. Par ailleurs, je suis sur un PC personnel, donc je l'utilise en tant qu'administrateur. Je lance mes scripts à partir du navigateur web selon le chemin: http://localhost/cgi-bin/essaicgigraph.pl

    Merci pour votre aide.

  6. #6
    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
    Citation Envoyé par ALLMAG54 Voir le message
    Salut,

    La fichier des données (table.csv) et le script essaicgigraph.pl se trouvent tous deux dans le même dossier cgi-bin. Par ailleurs, je suis sur un PC personnel, donc je l'utilise en tant qu'administrateur.
    Mais Apache ne s'exécute pas en tant qu'Administrateur ? (J'espère)

    --
    Jedaï

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Mais Apache ne s'exécute pas en tant qu'Administrateur ? (J'espère)

    --
    Jedaï
    Pouvez-vous être plus explicite sur les droits dont vous parler? Je crois que je ne vous suis pas bien.

    Merci.

  8. #8
    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
    Apache n'exécute pas les scripts CGI en mode Administrateur (j'espère, en tout cas c'est le cas sous Unix), sinon ils pourraient faire de très grosses bétises si un agresseur parvenait à faire une injection de code ou quelque chose comme ça (d'ailleurs tu devrais utiliser le taint-mode), il faut donc que ton fichier à lire soit lisible par l'utilisateur qu'Apache emploie.

    Par ailleurs tu dis que tu as essayé le script en ligne de commande, et que ton script comme tes fichiers sont dans cgi-bin, alors comment se fait-il que le rapport d'erreur parle de E:/tonScript.pl ?

    NB : Si tu veux un rapport d'erreur directement dans ton navigateur quand tu testes tes scripts CGI, rajoute cette ligne au début : "use CGI::Carp qw/:fatalsToBrowser/;". N'oublie pas de la retirer (ou de la commenter) quand tu mets tes scripts en production, ça fait mauvais genre et puis des attaquants pourrait l'exploiter pour mieux comprendre ton script.

    --
    Jedaï

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Apache n'exécute pas les scripts CGI en mode Administrateur (j'espère, en tout cas c'est le cas sous Unix), sinon ils pourraient faire de très grosses bétises si un agresseur parvenait à faire une injection de code ou quelque chose comme ça (d'ailleurs tu devrais utiliser le taint-mode), il faut donc que ton fichier à lire soit lisible par l'utilisateur qu'Apache emploie.

    Par ailleurs tu dis que tu as essayé le script en ligne de commande, et que ton script comme tes fichiers sont dans cgi-bin, alors comment se fait-il que le rapport d'erreur parle de E:/tonScript.pl ?

    NB : Si tu veux un rapport d'erreur directement dans ton navigateur quand tu testes tes scripts CGI, rajoute cette ligne au début : "use CGI::Carp qw/:fatalsToBrowser/;". N'oublie pas de la retirer (ou de la commenter) quand tu mets tes scripts en production, ça fait mauvais genre et puis des attaquants pourrait l'exploiter pour mieux comprendre ton script.

    --
    Jedaï
    Merci pour use CGI::Carp qw/:fatalsToBrowser/. Le rapport d'erreur parle de E:/tonScript.pl car j'ai exécuté le script avec l'invite de commandes de Windows Vista.
    La ligne de code suivante est-ellesuffisante pour lire le contenu du fichier table.csv?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $q->param('source',"table.csv");   # assign specific parameters
    Merci pour ton aide.

  10. #10
    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
    Citation Envoyé par ALLMAG54 Voir le message
    Le rapport d'erreur parle de E:/tonScript.pl car j'ai exécuté le script avec l'invite de commandes de Windows Vista.
    Ca j'ai bien compris, mais pourquoi n'as tu pas exécuté le script dans son répertoire cgi-bin ? Et avais tu bien mis le .csv dans E:\ ?

    --
    Jedaï

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Ca j'ai bien compris, mais pourquoi n'as tu pas exécuté le script dans son répertoire cgi-bin ? Et avais tu bien mis le .csv dans E:\ ?

    --
    Jedaï
    Merci Jedai,

    Je vais réexécuter le script en tenant compte de tes remarques et je te dirai ce qu'il en ait. Grand merci pour ton aide.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Finalament, j'ai dû abandpnner ce module pour utiliser DBD::Chart::Plot. Là encore, le module ne fonctionnait pas correctment. Djibril (modérateur de ce forum) m'a proposé une correction qui fonctionne bien avec DBD::Chart::Plot.

    Le résulat est accessible à l'adresse:
    http://www.developpez.net/forums/sho...93#post3266193

    Merci à Jedaï et à Djibril pour leur aide à la résolution de ce problème.

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

Discussions similaires

  1. Comment copier LES fichiers cachés d'un répertoire donné :-)
    Par gifffftane dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 25/06/2007, 17h57
  2. Plus de partitions, comment récupérer les fichiers
    Par Michaël dans le forum Administration système
    Réponses: 6
    Dernier message: 01/06/2005, 20h41
  3. [CF][PPC/C#] Comment lister les fichiers d'un répertoire ?
    Par dady dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 20/05/2005, 14h35
  4. [Forms6i] Comment charger les fichiers du client ?
    Par patmaba dans le forum Forms
    Réponses: 10
    Dernier message: 31/01/2005, 16h17
  5. Réponses: 4
    Dernier message: 13/12/2004, 20h37

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