2012-03-14 3 views
0

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é?

+2

[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). –

+0

'magic_quotes_gpc' est' On'. Essaiera de changer les paramètres de php.ini. – testing

+2

Trois applaudissements pour la dernière version de PHP éliminant réellement les citations magiques entièrement. –

Répondre

0

Vous devez désactiver les magicquotes dans le serveur, sinon vous devriez faire très attention à l'état on/off des magicquotes.

Questions connexes