Chaque fois qu'un POST est effectué, j'obtiens des caractères d'échappement. J'ai une forme en plusieurs étapes, qui transmet les données d'une forme à l'autre. Je sauvegarde les valeurs avec les déclarations préparées dans la base de données. Les valeurs dans la base de données ressemblent actuellement à Paul\'s House
. L'utilisateur devrait avoir la possibilité d'utiliser des guillemets simples et doubles dans sa chaîne.Caractères échappés dans une chaîne à partir d'un formulaire soumis
Ceci est un exemple simple montrant l'effet échapper:
<?php
echo $_POST['value'];
?>
<form action="form.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="value" value="Paul's House">
<input type="submit" value="Next">
</form>
Pourquoi ou qui échappe à la chaîne? Quelle est la bonne façon de gérer les données sur plusieurs formulaires? Quelle est la bonne façon de l'enregistrer dans la base de données? Devrais-je utiliser stripslashes()
ou ouvrir un gros trou de sécurité?
[Citations magiques] (http://php.net/manual/fr/security.magicquotes.php) sont probablement votre problème. Cette "fonctionnalité" est souvent activée pour les anciens scripts qui en dépendent. Le manuel a [plusieurs suggestions] (http://php.net/manual/fr/security.magicquotes.disabling.php) pour désactiver la fonctionnalité (et vous avez certainement raison de vouloir le désactiver). –
'magic_quotes_gpc' est' On'. Essaiera de changer les paramètres de php.ini. – testing
Trois applaudissements pour la dernière version de PHP éliminant réellement les citations magiques entièrement. –