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

Shell et commandes GNU Discussion :

CGI: exploiter facilement QUERY_STRING


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut CGI: exploiter facilement QUERY_STRING
    Bonjour, je dois, dans le cadre de mes études, développer un programme en CGI/Bash qui doit interagir avec une base de données Mysql. Je me débrouille pas trop mal mais j'ai un soucis pour exploiter la variable QUERY_STRING issue des formulaires html. J'ai en effet besoin de récupérer plusieurs paramètres afin d'effectuer une connexion via Mysql. J'ai testé ce code tout simple:

    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
    #!/bin/sh
    echo "Content-type: text/html"
    echo ""
    echo "<HTML><HEAD>"
    echo "<TITLE>Connexion...</TITLE>"
    echo "</HEAD>"
    echo "<BODY BGCOLOR=\"#ffffff\">"
    if [ "$REQUEST_METHOD" = "POST" ]; then
        read QUERY_STRING
    	echo "<UL>"
    	echo "<BL>"
    	echo "bonjour "
    	for opt in $QUERY_STRING
    	do
      		echo $opt
    	done
    	echo "</BL>"
    	echo "</UL>"
    else
    	echo "<H2>R&eacute;pondez aux questions suivantes</H2>"
    	echo "<FORM ACTION='treat.sh' METHOD=POST>"
    	echo "Prénom : <INPUT TYPE='text' NAME=prenom SIZE=20><BR>"
    	echo "Nom : <INPUT TYPE='text' NAME=nom SIZE=20><BR>"
    	echo "<INPUT TYPE=submit VALUE='Envoyer'> <INPUT TYPE=reset VALUE='Remettre &agrave; z&eacute;ro'>"
    	echo "</FORM>"
    fi
    echo "</BODY></HTML>"
    Le problème est que je n'arrive pas à désolidariser les éléments de la variable QUERY_STRING. Comment récupérer simplement les éléments se trouvant derrière le signe "="? J'ai cherché de la doc du côté de sed que je ne connaissait pas, mais je n'y comprend absolument rien. Existe t'il un moyen plus simple de récupérer ces paramètres?

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    cut doit repondre a ton besoin je pense:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "var=value" | cut -d= -f2
    value

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    Merci, en fait j'ai lamentablement recopié une regex que j'ai trouvé dans une doc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QUERY=`echo $QUERY_STRING | sed -e "s/=/='/g" -e "s/&/';/g" -e "s/+/ /g" -e "s/%0d%0a/<BR>/g" -e "s/$/'/" `
    Ceci répond parfaitement à mes besoins. Ou puis je trouver une doc complète sur l'utilisation des requêtes mysql avec bash?

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/05/2012, 15h16
  2. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  3. Réponses: 13
    Dernier message: 29/06/2010, 15h01
  4. exploiter facilement une base de données CVS
    Par mikesquake dans le forum Autres SGBD
    Réponses: 0
    Dernier message: 23/06/2010, 10h38
  5. PB mise en exploitation
    Par DiceChris dans le forum CORBA
    Réponses: 21
    Dernier message: 05/07/2002, 16h05

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