Sanguo Posté 6 Avril 2009 Posté 6 Avril 2009 (modifié) Bonjour, J'ai des soucis avec les apostrophes. J'ai un champs (MySQL) auteur dans lequel je stocke des noms d'auteurs sous la forme prénom nom;prénom2 nom2; Cela permets de faire ce type d'affichage par exemple : http://www.amateur-histoire.fr/livre-18.htm avec ensuite une navigation par auteur. La recherche sur la table est sous la forme SELECT ... WHERE auteur LIKE '%$theme_add%' Si je fais ça, je n'arrive pas à obtenir les noms avec une apostrophes : http://www.amateur-histoire.fr/theme.php?r...#092;%27Almeida Si je recherche ainsi SELECT ... WHERE auteur='$theme_add', j'arrive bien à avoir les noms avec une apostrophe simplement s'il n'y a qu'un seul auteur. Lorsque il y a plusieurs auteurs dans le champs, je n'ai pas de résultat. Mon problème est donc de pouvoir répondre correctement à la requête suivante : http://www.amateur-histoire.fr/theme.php?r...#092;%27Almeida Quelqu'un a t il une idée ? Modifié 6 Avril 2009 par Sanguo
cyberlaura Posté 6 Avril 2009 Posté 6 Avril 2009 (modifié) Bonjour Sanguo, A mon avis, il s'agit d'un problème d'antislash en trop, soit dans la base mysql elle-même, soit dans la requète. Commence par vérifier que tu n'as pas d'antislash dans la base, puis vérifie qu'il n'y en a bien qu'un dans la requète. Sachant par exemple qu'il y en a déjà un dans l'URL que tu indiques, et que PHP risque selon tes options d'en ajouter un aussi, cela va en faire 2 dans ta requète. Pour peu que tu fasses en plus un addslashes, on est à 3 ! PS : je pense avoir vu juste, cf la requète suivante : http://www.amateur-histoire.fr/theme.php?r...#092;%27Almeida : plutôt des antislash dans la base donc. Modifié 6 Avril 2009 par cyberlaura
Sanguo Posté 6 Avril 2009 Auteur Posté 6 Avril 2009 Merci beaucoup c'était ça. Je parais un peu idiot. Mais pour chacun des enregistrements je rajoutais un addslahes car j'ai lu partout qu'il fallait le faire et pour afficher les résultats je faisais un stripslashes. Quelle est la bonne méthode ?
petit-ourson Posté 6 Avril 2009 Posté 6 Avril 2009 Normalement tu n'as pas à faire de stripslashes pour l'affichage. Ta base de données ne devraient pas contenir d'antislashs. De plus il ne faut pas utiliser addSlashes lors de l'insertion dans la base de données, mais plutôt mysql_escape_string ou mysql_real_escape_string. http://fr.php.net/manual/fr/function.mysql...cape-string.php Tu as certainement un antislash en trop à cause des magic_quotes. http://www.webmaster-hub.com/index.php?showtopic=45892
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant