Dans certaines circonstances, les pages Web PHP peuvent rencontrer un problème où la soumission des données du formulaire entraîne l'ajout d'un barre oblique inverse avant chaque guillemet double. Ce problème survient en raison d'une fonctionnalité de configuration du serveur connue sous le nom de guillemets magiques.
Lorsque les guillemets magiques sont activés, PHP échappe automatiquement certains caractères, y compris les guillemets doubles, lorsqu'ils sont envoyés ou reçus depuis la base de données ou les soumissions de formulaires. Bien que cela puisse empêcher les attaques par injection SQL en échappant aux guillemets malveillants, cela peut également interférer avec le traitement normal du formulaire.
Résoudre le problème
Pour résoudre le problème, vous pouvez utiliser la fonction stripslashes() pour supprimer les barres obliques inverses automatiquement ajoutées avant d'enregistrer les données du formulaire dans la base de données ou de les afficher sur la page. Voici un exemple :
<code class="php">if (get_magic_quotes_gpc()) { $input = stripslashes($input); }</code>
Cette instruction conditionnelle vérifie si les guillemets magiques sont activés et, si c'est le cas, supprime les barres obliques inverses de la variable $input à l'aide de stripslashes(). Cela vous permettra de traiter les données du formulaire normalement sans aucune modification supplémentaire.
Explication des citations magiques
Les citations magiques sont une fonctionnalité obsolète et doivent être considérées comme non sécurisées dans le PHP moderne. développement. Ils ont été introduits dans PHP 4 et supprimés dans PHP 7.0.0 car ils introduisaient divers problèmes de sécurité et de compatibilité du code.
La désactivation des guillemets magiques est généralement recommandée car elle permet des pratiques de codage plus transparentes et sécurisées. Vous pouvez désactiver les guillemets magiques en modifiant votre fichier de configuration PHP et en définissant magic_quotes_gpc sur Off.
En comprenant la fonction des guillemets magiques et en utilisant stripslashes() pour résoudre ce problème de « barre oblique avant chaque guillemet », vous pouvez gérer efficacement formez des données en PHP et assurez leur fonctionnalité prévue même lorsque les guillemets magiques sont activés.
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!