Maison >développement back-end >tutoriel php >Comment résoudre les barres obliques inattendues dans les soumissions de formulaires avec les guillemets magiques de PHP ?

Comment résoudre les barres obliques inattendues dans les soumissions de formulaires avec les guillemets magiques de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-21 09:23:02518parcourir

How to Resolve Unexpected Slashes in Form Submissions with PHP's Magic Quotes?

Gestion du problème « Slash avant chaque citation » avec les citations magiques en PHP

Vous rencontrez un problème où votre formulaire PHP ajoute un Caractère "" avant chaque guillemet lors de la soumission. Cela est probablement dû à l'activation de la fonctionnalité « citations magiques » sur votre serveur.

Les citations magiques échappent automatiquement certains caractères, y compris les guillemets doubles, dans les soumissions de formulaires et autres données d'entrée. Bien que cette fonctionnalité soit destinée à empêcher les attaques par injection SQL, elle peut entraîner des problèmes d'intégrité des données et est généralement considérée comme obsolète.

Pour résoudre ce problème, vous pouvez utiliser la fonction stripslashes() pour supprimer les barres obliques indésirables avant le traitement. le texte. Ajoutez la condition suivante en utilisant stripslashes() à votre code :

<code class="php">if (get_magic_quotes_gpc()) {
    $your_text = stripslashes($your_text);
}</code>

Après avoir traité le texte avec stripslashes(), vous pouvez utiliser normalement la variable $your_text résultante et elle ne contiendra aucune barre oblique inattendue.

Concernant la désactivation des citations magiques :

Comme vous l'avez mentionné, vous disposez d'un accès root à votre serveur. La désactivation des guillemets magiques est généralement recommandée pour écrire du code bien structuré et sécurisé. Les raisons de sa désactivation incluent :

  • Il peut casser du code qui repose sur des échappements de caractères spécifiques.
  • Il peut interférer avec les processus de validation et de nettoyage des données.
  • Base de données moderne les pilotes et les frameworks offrent une protection plus efficace contre l'injection SQL.

Pour désactiver les guillemets magiques, modifiez le fichier php.ini de votre serveur et définissez la directive magic_quotes_gpc sur Off. Une fois la modification effectuée, redémarrez votre serveur Web pour que les modifications prennent effet.

N'oubliez pas de tester minutieusement votre application après avoir désactivé les guillemets magiques pour vous assurer qu'elle se comporte toujours comme prévu.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn