Problème des citations magiques : une barre oblique précédant chaque citation
Problème :
Dans un script PHP , un formulaire utilisateur pose problème. Lorsqu'un formulaire est renvoyé à lui-même, des champs de saisie de texte spécifiques comportent une barre oblique inverse ("") insérée avant chaque guillemet double. Par exemple, "roues 19" devient "roues 19". Après une enquête plus approfondie, il a été découvert que ce problème était dû à l'activation de "magic_quotes" sur le serveur. La désactivation de "magic_quotes" nécessiterait un accès root.
Solution :
Pour résoudre ce problème, utilisez l'extrait de code suivant avec des "stripslashes" sur le texte concerné, surtout si Les "magic_quotes" sont activés sur le serveur :
if(get_magic_quotes_gpc()) { $your_text = stripslashes($your_text); }
Après avoir appliqué ce code, vous pouvez continuer traiter la variable "$your_text" comme d'habitude.
Informations supplémentaires :
Les guillemets magiques sont un paramètre de configuration PHP qui ajoute automatiquement des barres obliques inverses avant certains caractères, y compris les guillemets et les barres obliques inverses. . Alors qu'ils étaient destinés à prévenir les attaques par injection SQL, ils sont désormais considérés comme obsolètes et peuvent entraîner plus de problèmes de sécurité qu'ils n'en résolvent.
Si votre environnement de développement le permet, il est généralement recommandé de désactiver les guillemets magiques. Cela peut être fait en mettant à jour votre configuration PHP ou en utilisant l'extrait de code fourni ci-dessus pour supprimer toute barre oblique inverse supplémentaire ajoutée par le paramètre de guillemets magiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!