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 :

[formulaire web] gestion de la saisie


Sujet :

Web Perl

  1. #1
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut [formulaire web] gestion de la saisie
    Salut,

    J'ai écrit un script cgi en perl qui prend des données input à partir d'un formulaire web, exécute plusieurs tâches et renvois un résultat dans une page html.

    Le formulaire web en question contient deux champs de saisie : un champs textarea nommé "seq" et un champs "parcourir" nommé "seqfile" sachant qu'on ne peut utiliser que l'un ou l'autre. Ainsi, j'ai commencé mon script par écrire ce qui suit :
    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
     
    #déclarations
    my $seq = $form->param('seq');
    my $seqfile = $form->param('seqfile');
     
    #Si le champs textarea est vide => les données input sont saisie à partir du fichier dont le chemin d'accées est fixé dans le champs "parcourir"
    if ($seq eq '')
    {
      open (FILE, $seqfile)||die "can not open $seqfile : $!";
      @infile=<FILE>;
      close (FILE);
      $input=join('',@infile);
    }
    #Si le champs "parcourir" est vide => les données input sont saisie à partir du champs textarea
    elsif ($seqfile eq '')
    {
      $input=$seq;
    }
    #Si les 2 champs sont vides => message d'erreur 1
    elsif (($seq eq '') and ($seqfile eq ''))
    {
      print "ERREUR 1 \n\n";
    }
    #Si les 2 champs sont non vides => message d'erreur 2
    elsif (($seq ne '') and ($seqfile ne ''))
    {
      print "ERREUR 2 !! \n\n";
    }
    Voila, ce code me parait peu robuste puisqu'il ne fonctionne pas toujours comme je le souhaite et ça me dépasse. Je crois avoir un problème avec les booléans !! ché pas. J'attends vos critiques ?

    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Voila, ce code me parait peu robuste puisqu'il ne fonctionne pas toujours comme je le souhaite et ça me dépasse. Je crois avoir un problème avec les booléans !! ché pas.
    Qu'est ce qui ne fonctionne pas comme tu le souhaite ? tu as un exemple ?

  3. #3
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    En effet, j'en ai 2.

    * Les messages d'erreurs ne s'affichent pas surtout dans le cas du message ERREUR 2, c'est à dire lorsque j'utilise les deux champs simultanément au lieu d'avoir ERREUR 2, j'obtient une page vide ?

    * La saisie par le champs "parcourir" pose problème dans certains cas :
    au fait j'utilise Dweb PRO pour mettre mes sites dynamiques sur CD (Dweb Pro fait office de serveur web mais sur CD) dans ce cas précis, la saisie par le textarea marche très bien mais pas la saisie par le parcourir qui permet de saisir le chemin d'accée et le nom du fichier mais renvois une page vide en résultat d'exécution ??

    Voila.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Tu éxploites mal tes conditions, elles sont mal organisé.

    ex : Le message d'erreur 1 n'apparaitra jamais vu que si $seq est vide il va dans ta première condition.

    Essaye de revoir l'organisation ou précise tes conditions.

  5. #5
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    J'ai changé un peu le code et ça donne ça :

    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
     
    if (($seqfile =~ /.*/) && ($seq eq ''))
    {
      open (FILE, $seqfile)||die "can not open $seqfile : $!";
      @infile=<FILE>;
      close (FILE);
      $input=join('',@infile);
    }
     
    elsif (($seq =~ /.*/) && ($seqfile eq ''))
    {
      $input=$seq;
    }
     
    elsif (($seq eq '') && ($seqfile eq ''))
    {
      print "ERREUR1\n\n";
    }
     
    elsif (($seq ne '') && ($seqfile ne ''))
    {
      print "ERREUR2\n\n";
    }
    Tout marche sauf le message ERREUR1. Lorsque je clique sur le bouton "submit" sans rien saisir j'obtient une page vierge au lieu de ERREUR1

    Pouvez vous m'expliquer le problème paske ça me dépasse à un tel point que je

    Merci.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Ta essayer de voir si il passait pas par une autre condition ?

    *Essaye de faire des prints des variables $seq et $seqfile
    pour essayer de comprendre.

  7. #7
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Au lieu de mettre des elsif, je te propose de mettre des else, dans ce style :

    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
     
    if ($seq eq '') {
    	if ($seqfile ne '') {
    		open (FILE, $seqfile)||die "can not open $seqfile : $!";
    		@infile=<FILE>;
    		close (FILE);
    		$input=join('',@infile);
    	}
    	else {
    		print "ERREUR1\n\n";
    	}
    }
    else {
    	if ($seqfile eq '') {
    		$input=$seq;
    	}
    	else {
    		print "ERREUR2\n\n";
    	}
    }
    Ca donne koi ?

  8. #8
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    Eh ben koi ça donne koi ? ça donne ke ça marche à merveille, ce qui ne me laisse que de te remercier toi et Hide pour l'aide que vous m'avez procuré.

    Je reviens à mon code de départ et il s'avère ke cé quasi sûr qu'il y a un problème avec les booléans (and et or). Mais bon ....

    Merci en core une fois.

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

Discussions similaires

  1. Intercepter un formulaire web pour y remplir des champs
    Par rpoulin dans le forum Web & réseau
    Réponses: 7
    Dernier message: 04/03/2010, 15h12
  2. Réponses: 5
    Dernier message: 19/12/2006, 16h10
  3. Réponses: 18
    Dernier message: 15/11/2005, 10h13
  4. Problemes formulaires web
    Par mdma64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/08/2005, 10h09
  5. Réponses: 3
    Dernier message: 15/09/2004, 15h01

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