PHP - PHP - Utilisation des Magic Quotes
Tutoriel écrit par KOogar le 25 Déc 2006
Avant PHP 6 une fonctionnalité, nommée magic quotes, fut créée pour aider les programmeurs débutants à ne pas écrire un mauvais code de traitement de formulaire. Magic Quotes marquait automatiquement avec un code d’évitement les données à risques du formulaire qui auraient pu être utilisées pour une SQL Injection avec un barre oblique inverse \. Les caractères que PHP marquait d’un code d’évitement comprennent l’apostrophe ', la double apostrophe ", la barre oblique inverse \ et les caractères NULL.
De toute façon, cette protection pour débutant s’avéra poser plus de problèmes qu’elle n’en résolvait et n’existe plus dans PHP6. Si votre version de PHP est une version antérieure au 6 vous devriez utiliser cette leçon pour en apprendre plus sur la façon dont magic quotes peut influencer votre travail.
Sommaire :
PHP - PHP - Utilisation des Magic Quotes
Commençons par le commencement, vous devez vérifier si magic quotes est activé sur votre serveur. La fonction get_magic_quotes_gpc() renverra un 0 (off) ou un 1 (on). Ces valeurs booléennes s’intégreront parfaitement dans une formulation de si ou 1 est vrai et 0 est faux.
| .01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 |
<?php
if(get_magic_quotes_gpc()) echo "Magic quotes est activé"; else echo "Magic quotes est désactivé"; ?> Affiche: Magic quotes est activé |
Faisons maintenant un formulaire pour montrer comment les serveurs où magic quotes est activé marqueront d’un code d’évitement ces caractères potentiellement dangereux. Ce formulaire se soumet à lui-même, donc vous n’avez besoin de créer qu’un fichier, "magic-quotes.php" pour faire le test.
| .01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 |
<?php
echo "<strong>Texte altéré:</strong> ".$_POST['question']; ?> <form method="post"> Question:<br /> <input type="text" name="question"> <input type="submit" value=" Envoyer "> </form> |
Vous recevriez la sortie suivante :
Texte altéré: Eric dit,\ "Il fait beau dehors et j\’aime \\ j\’adore ce temps.\"
Question:
Magic quotes a vraiment réussi dans le traitement de cette chaîne de caractères, non? Remarquez qu’il y a une barre oblique inverse devant tous ces caractères à risque dont nous avons parlé auparavant.
Après magic quotes:
· Une barre oblique inverse \ devient \\
· Une apostrophe ' devient \'
· Une double apostrophe " devient \"
Disons maintenant que vous voulez supprimer le code d’évitement qu’a ajouté magic quotes, vous avez deux options: désactiver magic quotes ou enlever les barres obliques inverses ajoutées par magic quotes.
Avant d’utiliser la fonction de suppression des barres obliques inverses de PHP stripslashes() il est utile de vérifier l’état de magic quotes comme dans notre partie "Est-ce Activé?" ci-dessus. De cette manière vous éviterez d’enlever accidentellement des barres obliques inverses légitimes dans le futur si les réglages de magic quotes de votre PHP changent dans le futur.
| .01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13 .14 .15 .16 .17 .18 |
<?php
echo "Enlève les Slashes:<br /> "; // Enlève les slashes if(get_magic_quotes_gpc()) echo stripslashes($_POST['question']); else echo $_POST['question']; ?> <form method=”post”> Question: <input type=”text” name=”question”/><br /> <input type=”submit”> </form> |
Notre nouvelle sortie pour notre chaîne contenant des caractères à risque sera maintenant:
Vous recevriez la sortie suivante :
Enlève les Slashes: Enlève les Slashes: Eric dit, "Il fait beau dehors et j’aime \ j’adore ce temps."
Question:
| Break et Continue | << - >> | PHP - POST & GET |
© Copyright: Les tutoriels sont exclusifs et sont la propriétés des auteurs.
Reproduction interdite.
Connexion
PHP
- Introduction
- Installation
- Echo
- Les variables
- Les chaîne de Caractères
- Les Opérateurs
- La fonction Include
- If
- If Else
- If - Else if - Else
- Switch
- Boucle For
- Boucle Foreach
- Boucle While
- Boucle Do While
- Break et Continue
- Magic Quotes
- GET & POST
- htmlentities
- SESSIONS
- Cookies
- Dates et Heures
- Fichier texte
- Newsletters
- Les Modulos
MySQL
|
On Focus
|
||


