Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1325 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  multiples variables $_GET avec le même nom

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

multiples variables $_GET avec le même nom

n°1675218
ZeBix
edit > preview
Posté le 22-01-2008 à 17:05:42  profilanswer
 

Une URL de ce type :  
 
./page.php?val=1&name=x&val=5
 
retourne un print_r($_GET) comme celui-ci :  
 

Array
(
    [val] => 5
    [name] => x
)

ce qui semble logique.  
 
Pourtant sans de loin en être expert, il me semble que dans d'autres langages comme JSP ou ASP, quand une variable en get se retrouve plusieurs fois, elle est automatiquement mise dans une array qui porte son nom, avec en son sein toutes les valeurs existantes.
 
J'ai trouvé qu'en PHP, il suffit de rajouter "[]" au nom de la variable, et ça semble résoudre le problème :  
 
./page.php?val[]=1&name=x&val[]=5
 
ce qui donne :
 

Array
(   [val] => Array
        (   [0] => 1
            [1] => 5
        )
    [name] => x
)


 
Pour des raisons obscures qui concernent les DBA de ma boîte et que je ne m'évertuerai pas à détailler ici (d'abord faudrait-il que je les comprenne!   :whistle: ) , je voulais savoir s'il n'y avait pas une solution plus élégante (par exemple une config niveau serveur) de bénéficier de cette mise en array automatique sans devoir changer le nom de la variable ...  
 
Bien l'merci d'avance pour tout renseignement !  :hello:  
 
 
 
 
 

mood
Publicité
Posté le 22-01-2008 à 17:05:42  profilanswer
 

n°1675226
skeye
Posté le 22-01-2008 à 17:14:46  profilanswer
 

pas à ma connaissance.


---------------
Can't buy what I want because it's free -
n°1675227
CyberDenix
Posté le 22-01-2008 à 17:15:04  profilanswer
 

De mémoire c'est la seule solution.
 
En général ce type de nom n'est pas passé en GET, mais en POST car rattaché à des inputs et compagnie -> or le GET est officiellement déprécié pour les formulaires.


---------------
Directeur Technique (CTO)
n°1675230
skeye
Posté le 22-01-2008 à 17:16:13  profilanswer
 

CyberDenix a écrit :

De mémoire c'est la seule solution.
 
En général ce type de nom n'est pas passé en GET, mais en POST car rattaché à des inputs et compagnie -> or le GET est officiellement déprécié pour les formulaires.


 
oui, s'il s'agit d'un formulaire il est plus que conseillé de tout passer en POST - même s'il faut toujours utiliser la même ruse.


---------------
Can't buy what I want because it's free -
n°1675244
omega2
Posté le 22-01-2008 à 17:29:43  profilanswer
 

aie aie aie, pas de solution dans ce cas là. il faut soit changer le nom des variables soit récupérer la partie paramètre de l'adresse (en général on la trouve dans $_SERVER) et la traiter manuellement pour retrouver l'ensemble des données.
A ma connaissance, le php est d'ailleurs le seul langage qui nécessite qu'on mette un "[]" pour bénéficier d'une mise en tableau automatique des données envoyés en get ou en post.

Message cité 1 fois
Message édité par omega2 le 22-01-2008 à 17:41:05
n°1675246
FlorentG
Unité de Masse
Posté le 22-01-2008 à 17:30:30  profilanswer
 

Impossible à faire. Voir dans le code source, le fichier \main\php_variables.c, la fonction php_register_variable_ex

n°1675248
dwogsi
Défaillance cérébrale...
Posté le 22-01-2008 à 17:32:55  profilanswer
 

omega2 a écrit :

...récupérer la partie paramètre de l'adresse (en général on la trouve dans $_SESSION) ...


$_SERVER ?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1675256
omega2
Posté le 22-01-2008 à 17:40:51  profilanswer
 

Oups, coquille. [:anathema]

n°1675261
ZeBix
edit > preview
Posté le 22-01-2008 à 17:46:39  profilanswer
 

Il s'agit ici en fait de dresser des tableaux de stats automatiques issus de DB Oracle donc pas de problème pour l'utilisation de get à la place de post, pas de données de formulaire sensibles :)
 
En tout cas merci pour vous éclaircissements, et dommage pour cette petite faiblesse de PHP ;)

n°1675264
omega2
Posté le 22-01-2008 à 17:50:44  profilanswer
 

Fait, gaffe, en get aussi il faut les [] pour php. ;)

mood
Publicité
Posté le 22-01-2008 à 17:50:44  profilanswer
 

n°1675626
ZeBix
edit > preview
Posté le 23-01-2008 à 13:50:31  profilanswer
 

ouioui omega, c'est ce que je dis dans mon tout premier message (où les exemples en PHP sont illustrés par des variables issus de l'URL, c'est-à-dire en get!) :)
 
:jap:

n°1675648
omega2
Posté le 23-01-2008 à 14:26:52  profilanswer
 

Comme quoi il faut toujours se relire : je voulais dire en post, donc même pour les input d'un formulaire.

n°1675649
ZeBix
edit > preview
Posté le 23-01-2008 à 14:30:43  profilanswer
 

ooh oki :) bon à savoir :)

n°1676196
FlorentG
Unité de Masse
Posté le 24-01-2008 à 13:41:54  profilanswer
 

C'est d'ailleurs assez naze. Ca serait assez trivial de gérer plusieurs fois le même nom sans utiliser [].

n°1676254
omega2
Posté le 24-01-2008 à 14:43:13  profilanswer
 

FlorentG > Là, je suis d'accord avec toi. C'est l'un des trucs que je trouve le plus mal fait dans ce langage.

n°1676260
skeye
Posté le 24-01-2008 à 14:48:24  profilanswer
 

omega2 a écrit :

C'est l'un des trucs que je trouve le plus mal fait dans ce langage.


tu t'arrêtes à pas grand chose.:D


---------------
Can't buy what I want because it's free -
n°1676300
omega2
Posté le 24-01-2008 à 15:25:27  profilanswer
 

J'ai pas besoin de tout non plus. :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  multiples variables $_GET avec le même nom

 

Sujets relatifs
fonctions aléatoires et variablesvariables > include vers include
[C,C++,autres] Calcul polynome degres 5 avec variables 32bits[BASH] Cron en seconde? / Comparaison de deux variables
Comment mettre une variables dans flashConnaitre la provenance des variables POST
[Delphi] mode d'execution avec visu des variablesInclude et récupération de variables
probléme avec recupération de variable GET avec URL rewrite[Résolu] chmod() et les variables $_GET['var']
Plus de sujets relatifs à : multiples variables $_GET avec le même nom


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR