Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2011, 11h02   #1
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Par défaut extract de $_POST

Bonjour,

J'ais lue, que était obselete,
ors cette fonction est toujours décrite dans php.net avec quelques réserves
Je voudrait votre avis, sachant que bien entendu mes sites ont
register_globals = Off dans php.ini
Merci d'avance.
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 13h55   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Pour des raisons de sécurité, je te déconseille très fortement d'extraire les données de $_POST ou $_GET ou encore $_REQUEST.

La raison est que extract manipule la table des symboles pour injecter de nouvelles variables dans le scope courant, en écrasant celles qui pouvaient déjà s'y trouver. De ce fait, un utilisateur un peu malin s'étant rendu compte du comportement peut s'en servir pour briser la sécurité.

Le mieux à faire est encore de réccupérer les doonées saines, après le passage dans un filtre. On peut ensuite vouloir les extraires tant qu'on sait exactement ce qu'on fait.

Voici ce que je te recommande de faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$inputs = filter_input_array(INPUT_POST, array(
  'a' => FILTER_SANITIZE_STRING,
  'b' => FILTER_VALIDATE_EMAIL,
  'c' => array(
    'filter' => FILTER_VALIDATE_INT,
    'flags'  => FILTER_REQUIRE_ARRAY,
  )
);
 
extract($inputs, EXTR_PREFIX_ALL, "_in_");
 
echo "a: {$_in_a}, b: {$_in_b}, c: ".implode(',', $_in_c);
Garde à l'esprit que manipuler la table des symboles au runtime reste dangereux et doit être utilisé avec précaution et parcimonie.

Dans tout les cas, il faut SYSTÉMATIQUEMENT vérifier les données utilisateur.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/10/2011, 17h55   #3
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Super merci a toi,
c'est limpide
Christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h39.


 
 
 
 
Partenaires

Hébergement Web