Problème d'accent avec futur moteur de recherche

Alexou
Invité n'ayant pas de compte PHPfrance

01 août 2013, 15:01

Bonjour à tous et à toutes,

Je me prénome Alexandre et j'ai 25 ans,

J'aurais besoin, si possible, d'aide :)


Je m'explique, je suis en train de concevoir un mini moteur de recherche ultra simplifié,

cependant, quand le mot clé contient un accent ou caractére spécial, aucun résultat ne s'affiche,

mais, si le mot clé n'a pas d'accent ou de caractére spécial, mais que dans les résultats il y a des accents, les résultats s'affichent

Pouvez-vous me dire d'où bien le "bug", svp ? Merci de votre aide, voici le code :
<?
$connexion = mysql_pconnect("SERVEUR","LOGIN","PASSWORD");

mysql_select_db("NOMDELABASE",$connexion);

$requete = "select * from NOMDELATABLE where titre like '%LEMOTCLES%'";
$envoi = mysql_query($requete);
while($tableau = mysql_fetch_array($envoi))

{

$titre = $tableau['titre'];
$id = $tableau['id'];
$texte = $tableau['texte'];


echo stripslashes("$titre<br><br>");
}

?>

Merci par avance pour votre aide

ViPHP
ViPHP | 2577 Messages

01 août 2013, 15:39

Je pense avoir compris suite à ta réponse dans un mauvais post.
Il doit y avoir un truc genre & 1 2 ; ou & e c u t e ; dans ta variable du formulaire ou dans le champ de la base.

Regardes dans le source html après avoir consulté une donnée de la base ou affiché la requete sql.
Regardes également du coté de la fonction htmlspecialchars_decode (http://www.php.net/manual/fr/function.h ... decode.php)

Alexou
Invité n'ayant pas de compte PHPfrance

01 août 2013, 15:55

Merci Mazarini pour tes conseils,

J'ai trouvé l'astuce, en faite j'ai directement testé l'intégration du futur formulaire de recherche, et lorsque je saisi par exemple l'url avec le mot clé à accent, ça passe

mon code ayant changé pour la formule :
<?
$connexion = mysql_pconnect("SERVEUR","LOGIN","PASSWORD");

mysql_select_db("BDD",$connexion);

$recherche=$_GET['recherche']; 
$requete = "select * from TABLE where titre like '%$recherche%'";
$envoi = mysql_query($requete);
while($tableau = mysql_fetch_array($envoi))

{

$titre = $tableau['titre'];
$id = $tableau['id'];
$texte = $tableau['texte'];


echo stripslashes("$titre<br><br>");
}

?>
J'espère que ces modifications pourrons servir à des gens qui auront le même problème :)