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

Langage Perl Discussion :

Récupérer une variable (Query_string)


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Récupérer une variable (Query_string)
    Bonjour à tous, je fais appel à vous car je bloque sur une partie d'un script.

    En effet, je cherche a récupérer une variable ainsi que sa valeur par un Query Script, je vous explique après vous avoir montrer le script.

    my ($EVENT_ID, $EVENT_ID2);
    my $TEST;
    if ( $ENV{'QUERY_STRING'} )
    {
    $EVENT_ID = $ENV{'QUERY_STRING'};
    }
    my @tab = split (/&/, $EVENT_ID);
    foreach $EVENT_ID (@tab)
    {
    my @tab5 = split (/=/, $EVENT_ID);
    foreach $EVENT_ID2 (@tab5)
    {
    $EVENT_ID=$EVENT_ID2;
    print "$EVENT_ID2<br>";
    }
    }


    Voilà, en gros tout fonctionne, les variables et valeur de l'url sont bien récuperer et s'affiche de la manière suivante (VAR1 étant nulle):

    VAR1
    VAR2
    8
    VAR3
    78

    J'aimerais que les valeurs s'affichent de cette manière :

    VAR1
    VAR2 8
    VAR3 78

    Ainsi que pouvoir récupérer et modifié si je le souhaite une variable au choix (par exemple VAR3) dans le script.

    Je ne sais pas si c'est clair, désolé je débute dans le Perl.

    Merci d'avance pour votre aide !

  2. #2
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    Bonjour,
    Pour commencer utilise la balise code se sera plus lisible

    je reprend ton 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
     
    my ($EVENT_ID, $EVENT_ID2);
    my $TEST;
    if ( $ENV{'QUERY_STRING'} ) 
    { 
    	$EVENT_ID = $ENV{'QUERY_STRING'}; 
    }
    my @tab = split (/&/, $EVENT_ID); 
    foreach $EVENT_ID (@tab) 
    {
    	my @tab5 = split (/=/, $EVENT_ID);
    	foreach $EVENT_ID2 (@tab5)
    	{ 
    		$EVENT_ID=$EVENT_ID2;
    		print "$EVENT_ID2<br>";
    	}
    }
    Pourquoi cette ligne : $EVENT_ID=$EVENT_ID2;
    C'est ton <br> qui pause problème pour l'affichage mets le après ton foreach comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    foreach $EVENT_ID (@tab) 
    {
    	my @tab5 = split (/=/, $EVENT_ID);
    	foreach $EVENT_ID2 (@tab5)
    	{ 
    		$EVENT_ID=$EVENT_ID2;
    		print "$EVENT_ID2 ";
    	}
    	print "<br />";
    }
    normalement tu auras l'affichage que tu souhaites

    Cependant si comme tu le dis tu souhaites pouvoir travailler tes variables je ne ferais pas comme ça à ta place je passerai par des hash ou la clé serait le nom de la variable.
    Pourquoi faire simple quand on peut faire compliqué.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci magicshark, l'affichage fonctionne parfaitement, pour cette ligne : $EVENT_ID=$EVENT_ID2; je l'avais ajouté pour effectuer quelques tests, mais tu viens de me faire penser à l'enlever maintenant qu'elle n'est plus utile.

    Donc le seul moyen de pouvoir utiliser les variables que j'ai récuperer par l'URL est d'utiliser des hash ? Si c'est le cas, je vais essayer de refaire ce script et vous recontacterais si je rencontre des difficultés.

  4. #4
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    Ok penses à mettre Résolu si tu trouves (sinon j'ai codé la solution mais il me semble plus important que tu trouves toi même).
    Pourquoi faire simple quand on peut faire compliqué.

  5. #5
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    La discussion est résolu mais je poste mon code au cas ou quelqu'un aurais le même problème.
    J'ai fait de deux méthode (dont une pour les habitués du perl)
    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
    #!/usr/bin/perl
     
    use strict;
    my ($EVENT_ID,%tmp);
     
    #juste pour les tests
    $EVENT_ID ="var1=&var2=8&var3=78";
     
    #methode 1
    my @tab = split (/&/, $EVENT_ID); 
    foreach $EVENT_ID (@tab) 
    {
        my @tab5 = split (/=/, $EVENT_ID);
        $tmp{$tab5[0]}=(scalar(@tab5)>1)?$tab5[1]:"";
        # Si tu n'es pas habituer aux ternaires
        # (condition)?si oui:si non;
        # correspond à 
        # if(scalar(@tab5)>1){
        #   $tmp{$tab5[0]} = $tab5[1];
        # }else{
        #   $tmp{$tab5[0]} = "";
        # }
    }
     
    #methode 2
    my %hashT = map{$1=>$2 ,($_ =~ m/^(.*)=(.*)$/)} split (/&/, $EVENT_ID);
     
     
    print "affichage methode 1\n";
    while(my($k,$v) = each(%tmp)){
            print $k." ".$v."\n";
    }
    print "affichage methode 2\n";
    while(my($k,$v) = each(%hashT)){
            print $k." ".$v."\n";
    }
    Pourquoi faire simple quand on peut faire compliqué.

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

Discussions similaires

  1. [Ant] Récupérer une variable d'envionnement
    Par lionel69 dans le forum ANT
    Réponses: 4
    Dernier message: 25/01/2007, 10h22
  2. Récupérer une variable --> Javascript+CSS
    Par Skarlix dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2005, 16h01
  3. [Applet] récupérer une variable PHP ?
    Par Shiryu44 dans le forum Applets
    Réponses: 10
    Dernier message: 22/03/2005, 11h39
  4. [JSTL] Récupérer une variable du style <%String bob = "bobby"%>
    Par nickoshiba dans le forum Taglibs
    Réponses: 2
    Dernier message: 15/03/2005, 08h50
  5. récupérer une variable
    Par boucher_emilie dans le forum ASP
    Réponses: 9
    Dernier message: 05/07/2004, 10h34

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