bonjour,
j'ai un moteur de recherche où l'utilisateur peut entrer des mots via un formulaire de type POST.
J'ai défini ainsi les variables
j'ai ensuite un bout de code pour compter le nombre de mots et les chercher tousCode:$_SESSION['motsclef'] = addslashes($_POST['motsclef']) ;
ma requête est ensuite de la formeCode:
1
2
3
4
5
6 $motsclef = $_SESSION['motsclef']; // On explose les mots clefs // en tronquant à chaque espace $motsclef1 = explode(" ",$motsclef); // On compte le nombre de mots entrés par le visiteur $nbr_mots = count($motsclef1);
Code:$sql .= "AND (s_nom LIKE '%$motsclef1[0]%' OR specifique LIKE '%$motsclef1[0]%' );"
le problème, c'est que quand je cherche une expression avec un ' (par exemple l'éléphant) j'ai 3 addslashes et non un seul dans ma requête :
Code:AND (s_nom LIKE '%l\\\'éléphant%' OR specifique LIKE '%l\\\'éléphant%' );
j'ai essayé addslashes, mysql_real_escape_string et j'ai le même effet.
Autre question.
si certaines variables sont définies grâce à un select, faut-il mettre quand même addslashes ou mysql_real_escape_string avant de les intégrer en BDD ?
Merci pour vos conseils