Question

J'ai un système d'enregistrement qui demande un nom d'utilisateur. Certaines personnes ont une apostrophe dans leur nom de famille et il empêche des données d'être écrites à la table de base de données MySQL (par exemple O'Hare).

J'utilise mysql_real_escape_string qui enlève lapostrophe de la chaîne. Ce serait bien, sauf que je dois utiliser la valeur avec le service contre un apostrophe Web, sinon le service Web retournera false.

Je pensais que je pouvais faire la vérification du nom avec le service Web avant d'utiliser mysql_real_escape_string, mais pourrait-il présente une faille de sécurité? Ou faire SOAP Web Services font déjà leurs propres contrôles pour les entrées propres?

Ou est-il une meilleure façon de passer à travers la variable PHP dans lequel se réserve le garde toujours, mais apostrophe le sécuriser et MySQL peut l'accepter?

Était-ce utile?

La solution

Vous devriez nous montrer un peu de code, car mysql_real_escape_string ne supprime pas une apostrophe, mais seulement leur échapper.
O'Hare seul moyen d'échapper deviendra O\'Hare afin qu'il puisse être inséré comme une chaîne: 'O\'Hare'. Lors de la récupération de la base de données, votre valeur doit toujours être le O'Hare d'origine.

Donc, si l'apostrophe est « perdu » il y a probablement une erreur quelque part ailleurs dans la logique de votre programme.

L'autre option est de passer d'utiliser la bibliothèque de MySQL à la bibliothèque ou MySQLi PDO pour accéder à votre base de données. Ces deux derniers appui préparé des déclarations. Les instructions préparées sont généralement considérées comme étant les meilleures pratiques pour interroger la base de données.

Autres conseils

mysql_real_escape_string() ne supprimera pas apostrophes.

Votre problème est probablement du côté de sortie, ou une autre fonction déconner avec l'entrée.

Vous devez avoir une ouverture de connexion de base de données avant d'utiliser mysql_real_escape_string ou il ne fonctionnera pas correctement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top