Avec cette option , celà revient à mettre
register_globals à
on .. pas conseillé donc .
Imagine ton code , tu utilises une variable nommé
$toto pour un traitement spécifique dont tu afficheras le résultat plus tard ..
Tout va bien jusqu'au moment ou tu utilises extract($_POST,EXTR_OVERWRITE) , car dans ton formulaire tu as un champ nommé toto
ex : <input type='text' name='toto'>
Et bien ta variable $toto qui possède le resultat d'un traitement sera simplement écrasé par le contenu du champ , qui peut trés bien contenir du code malicieux ... si $toto est utilisé dans la suite du code , il peut donc y avoir une injection de code , ou simplement provoquer un beau plantage .
utiliser extrac pour $_POST et $_GET est d'autant plus dangereux que le nom des variables passé dans les entêtes / corps http , sont tres simplement modifiables !
Donc même si tu te dit , pas de problème .. il n'y a aucune correspondance entre les noms de champs de mon formulaire , et variables à l'intérieur de mon code , ce n'est pas figé !
Bon , apres , tu auras peu ( enfin , je pense ) d'attaques de ce genre , mais autant faire quelque chose de propre .. de plus ce là ne t'avancera pas beaucoup d'utiliser cette méthode , tu devras quand même traiter 1 par 1 tes variables récupérées .. alors autant rester avec $_POST['ma_var']
Sinon , je conseille plutôt EXTR_PREFIX_ALL comme option , qui te préfixera toujours le nom de tes variables ... ce qui évite les collisions .
Pour les requêtes préparé , tu as plusieurs avantages ( de secu et perf ) , je te laisse lire la doc à ce sujet :
http://fr2.php.net/manual/fr/pdo.prepare.php
Ch.