Vous n'êtes pas identifié(e).

  • Contributions :
  • Vos boîtes de messages privés sont vides.

🟣 [PHP] Conversion des variables POST et GET


#1 2015-12-22 15:26:02

Mention Julien G
🥈 Grade : Soldier

Membre du CercleOfficierForce PolyvalenteIngénieur web
Lieu : Lyon
Inscription : 2015-06-26
Messages : 589
Likes : 2

Développement PHP
Sécurité
Automatisation Web
Social Engineering
Site Web

[PHP] Conversion des variables POST et GET

Hello,

Je fais beaucoup de développement form-scratch en PHP et à chaque fois que je dois travailler sur un formulaire il me faut traiter des variables de type POST.

Pour les réutiliser on peut faire :


<?php
$username = $_POST['username'];
$email= $_POST['email'];
$password= $_POST['password'];
?>
 

Mais ça devient vite fastidieux...
C'est pour ça que je vous donne une ligne de code qui convertira tout les variables de type POST (ou GET si vous l'adaptez) en variables classiques.


<?php

foreach($_POST as $key => $value) ${$key} = $value;

?>
 

ou en natif (merci Mitsu) :


extract($_POST);
 

Julien,

0
J'aime ❤️

🔴 Hors ligne

#2 2015-12-22 16:06:59

Mention Mitsu
🥉 Grade : Scout

AuxiliaireIngénieur webStratège1000 messagesMembre Hospitalier
Inscription : 2014-11-17
Messages : 2 012
Likes : 9

Développement PHP
Développement JS
Audit et Analyse
Netlinking
Site Web

Re : [PHP] Conversion des variables POST et GET

Sinon tu as en natif

extract($_POST);

qui te donne le même résultat, ça marche pour n'importe quel tableau associatif.

Dernière modification par Mitsu (2015-12-22 16:08:05)

0
J'aime ❤️

🔴 Hors ligne

#3 2015-12-22 16:14:09

Mention Walid
🥉 Grade : Scout

Auxiliaire1000 messagesMembre Hospitalier
Inscription : 2013-02-07
Messages : 1 293
Likes : 2

Sémantique

Re : [PHP] Conversion des variables POST et GET

Mitsu a écrit :

Sinon tu as en natif

extract($_POST);

qui te donne le même résultat, ça marche pour n'importe quel tableau associatif.

Pratique ça  !

0
J'aime ❤️

🔴 Hors ligne

#4 2015-12-22 16:34:03

Mention Webredaction
🥉 Grade : Scout

AuxiliaireStratège
Lieu : CRETEIL
Inscription : 2015-05-14
Messages : 133
Likes : 1

Rédaction
Rédaction
Rédaction
Rédaction
Site Web

Re : [PHP] Conversion des variables POST et GET

En effet, c'est bien plus rapide de cette façon.

Merci bien.


Rédacteur web : CP à 1,9 € les 100 mots  - rédacteur à Créteil (94).
Aucune sous-traitance.
wink

0
J'aime ❤️

🔴 Hors ligne

#5 2015-12-22 16:43:48

Mention Julien G
🥈 Grade : Soldier

Membre du CercleOfficierForce PolyvalenteIngénieur web
Lieu : Lyon
Inscription : 2015-06-26
Messages : 589
Likes : 2

Développement PHP
Sécurité
Automatisation Web
Social Engineering
Site Web

Re : [PHP] Conversion des variables POST et GET

Mitsu a écrit :

Sinon tu as en natif

extract($_POST);

qui te donne le même résultat, ça marche pour n'importe quel tableau associatif.

Merci Mitsu je connaissais pas !
J'edit smile

0
J'aime ❤️

🔴 Hors ligne

#6 2015-12-23 08:05:57

Mention salemioche
🥉 Grade : Scout

AuxiliaireIngénieur webStratège
Inscription : 2015-10-09
Messages : 250
Likes : 0

Adminstration Serveur
PHP
Scraping
Cloaking

Re : [PHP] Conversion des variables POST et GET

Mitsu a écrit :
extract($_POST);

Au début de Php, c'était en natif ça ( remember http://php.net/manual/en/security.globals.php smile ), il n'y avait meme pas besoin de le faire

foreach($_POST as $key => $value) $$key = trim($value);

Le foreach peut être pratique pour appliquer une petite fonction par exemple, ( les {} peuvent aussi être supprimées )

Dans le cas ci dessus, on pourrait aussi avoir

array_map('trim',$_POST) ; extract($_POST);

( On "apprécie" une fois de plus que array_map et array_walk n'est pas la même syntaxe... )


__
Powering Nikozen

0
J'aime ❤️

🔴 Hors ligne

#7 2015-12-23 08:30:57

Mention jeromeweb
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 328
Likes : 5

PHP
Automatisation Web

Re : [PHP] Conversion des variables POST et GET

Faites gaffe qd meme de ne pas utiliser extract() comme ça sur du front par contre, ça peut ouvrir des portes pour des tentatives de piratage

0
J'aime ❤️

🔴 Hors ligne

#8 2015-12-23 10:15:35

Mention Julien G
🥈 Grade : Soldier

Membre du CercleOfficierForce PolyvalenteIngénieur web
Lieu : Lyon
Inscription : 2015-06-26
Messages : 589
Likes : 2

Développement PHP
Sécurité
Automatisation Web
Social Engineering
Site Web

Re : [PHP] Conversion des variables POST et GET

jeromeweb a écrit :

Faites gaffe qd meme de ne pas utiliser extract() comme ça sur du front par contre, ça peut ouvrir des portes pour des tentatives de piratage

Yes tu as tout à fait raison smile
On peut faire un truc du style pour sécurisé :


$allow = array('champ1','champ2');
foreach($_POST as $key => $value)
{
      if(in_array($value,$allow))
      {
            ${$key} = $value;
      }
}
 
0
J'aime ❤️

🔴 Hors ligne

#9 2015-12-23 12:17:55

Mention salemioche
🥉 Grade : Scout

AuxiliaireIngénieur webStratège
Inscription : 2015-10-09
Messages : 250
Likes : 0

Adminstration Serveur
PHP
Scraping
Cloaking

Re : [PHP] Conversion des variables POST et GET

jeromeweb a écrit :

Faites gaffe qd meme de ne pas utiliser extract() comme ça sur du front par contre, ça peut ouvrir des portes pour des tentatives de piratage

je ne vois pas de faille vraiment critique potentiel, le user pourrait effectivement injecter un peu n'importe quoi, mais gloablement a part faire planter le script, il ne se passera pas grand chose ( tant que le script est privé, si tu le diffuses, c'est tout autre chose smile )

Tu peux aussi utiliser EXTR_SKIP pour eviter d'écraser la variable ou EXTR_PREFIX_ALL pour péfixer les variables créées. Cette dernière solution est sans doute toujours la meilleure surtout s'il y a diffusion du code


__
Powering Nikozen

0
J'aime ❤️

🔴 Hors ligne

#10 2015-12-23 12:42:39

Mention Julien G
🥈 Grade : Soldier

Membre du CercleOfficierForce PolyvalenteIngénieur web
Lieu : Lyon
Inscription : 2015-06-26
Messages : 589
Likes : 2

Développement PHP
Sécurité
Automatisation Web
Social Engineering
Site Web

Re : [PHP] Conversion des variables POST et GET

salemioche a écrit :
jeromeweb a écrit :

Faites gaffe qd meme de ne pas utiliser extract() comme ça sur du front par contre, ça peut ouvrir des portes pour des tentatives de piratage

je ne vois pas de faille vraiment critique potentiel, le user pourrait effectivement injecter un peu n'importe quoi, mais gloablement a part faire planter le script, il ne se passera pas grand chose ( tant que le script est privé, si tu le diffuses, c'est tout autre chose smile )

Tu peux aussi utiliser EXTR_SKIP pour eviter d'écraser la variable ou EXTR_PREFIX_ALL pour péfixer les variables créées. Cette dernière solution est sans doute toujours la meilleure surtout s'il y a diffusion du code

Le soucis est par exemple d'écraser une variable de type requête SQL après en utilisant EXTR_SKIP tu supprimes le problème si appelle de la fonction extract() après toutes les déclarations !

0
J'aime ❤️

🔴 Hors ligne

#11 2015-12-23 12:58:16

Mention jeromeweb
🥉 Grade : Scout

Auxiliaire1000 messages
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 328
Likes : 5

PHP
Automatisation Web

Re : [PHP] Conversion des variables POST et GET

Clair tu passes en POST des $conn, $db, $sql, $requete etc....il y a des surprises des fois quand des erreurs s'affichent parce que tu as fais planter le script:-)

Sur du tool privé on s'en fout mais en prod sur du front ça peut faire mal

0
J'aime ❤️

🔴 Hors ligne

#12 2015-12-23 17:11:59

Mention Mitsu
🥉 Grade : Scout

AuxiliaireIngénieur webStratège1000 messagesMembre Hospitalier
Inscription : 2014-11-17
Messages : 2 012
Likes : 9

Développement PHP
Développement JS
Audit et Analyse
Netlinking
Site Web

Re : [PHP] Conversion des variables POST et GET

Yes je me rappelle de cette époque salemioche lol. Perso je connais extract mais je l'utilise effectivement que pour des petit script sale. Sinon en terme de lecture voir des variable pope sans déclaration ça peut faire des noeuds aux cerveaux mais sur le script fait rapidos pour un usage unique vive le sale.

0
J'aime ❤️

🔴 Hors ligne

#13 2015-12-24 12:10:14

Mention Woods
🥉 Grade : Scout

AuxiliaireStratège
Inscription : 2013-10-25
Messages : 326
Likes : 2

Netlinking
Networking SEO
Automatisation Web
Scraping

Re : [PHP] Conversion des variables POST et GET

Yo,

Je dev uniquement en from scratch pour mes tools et j'utilisais la méthode du foreach.
Simple et qui envoi du paté.

Je ne connaissais pas extract, merci.

0
J'aime ❤️

🔴 Hors ligne

Pied de page des forums