Parser les mots-clés et caractères spéciaux

Fermé
eternity Messages postés 3 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 26 mars 2006 - 25 mars 2006 à 22:19
eternity Messages postés 3 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 26 mars 2006 - 26 mars 2006 à 03:37
Bonjour

Je viens vers vous en espérant que vous puissiez m'aider à résoudre quelques petits soucis, qui je suppose ne seront pas trop compliqué pour vous mais pour moi je rends mon tablier après mainte essais de modification !

Le premier concerne l'affichage des "messages" sur mon site : Si l'on écrit "l'autoreproduction" le résultat affiché est "l\'autoproduction" je ne sais pas comment parser se problème. En insérant le texte en direct base de donnée, je n'ai plus le problème mais si l'on passe par "ajouter une réponse" via mon site alors le problème revient.

Le second est un moteur de recherche via se script qui fait appel aux "messages" pour les mots-clés. Ca fonctionne hormis qu'il faut écrire le mot dans son exactitude ex : Si dans l'annonce il est noté "Véhicule" et que dans le moteur vous tapez "vehicule" alors il n'affiche rien.

Voici ma ligne de commande pour le moteur :
$req = mysql_query("SELECT id,date,pseudo,email,sujet,message from forum_tbl where message LIKE'%$_POST[recherche]%' Order by date_verif Desc ") or die ("erreur req ".mysql_error());


Pour la troisième je la posterai après une première réponse, je suppose que vous êtes surchargés alors je vais y aller doucement :-)

Je vous remercie d'avance pour votre aide et réponse.
Cordialement

Spirit
A voir également:

2 réponses

mouezpro Messages postés 6 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 30 juin 2006 1
25 mars 2006 à 23:25
Pour la première question il faut avant d'enregistrer le message de faire : $message=addslashes($message)
ceci permet d'echapper les caracteres : guillement simple et double et les anti-slash.

et avant l'affichage :
$message=stripslashes($message)


Moez
http://www.fisoft1.com
0
eternity Messages postés 3 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 26 mars 2006
26 mars 2006 à 00:20
bonsoir et merci pour votre réponse.

Cependant je en connais pas beaucoup cette fonction alors j'ai tenté de l'inclure en fonction du "post"

J'ai remplacé "message" par "description"

<tr><td><?php
$description = stripslashes($_POST[description]);
echo "<p>Your message:<br> <b>$description</b></p>";
$description = addslashes($description);?></td>

<td><input type="text" name="description" value="<?php echo $description ?>"></td>
</tr>


J'ai tenté de faire un nouveau post mais ça ne fonctionne toujours pas les /' sont encore presents. Je pense que j'ai dû faire une erreur dans la fonction.


Merci pour votre aide

Spirit
0
eternity Messages postés 3 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 26 mars 2006
26 mars 2006 à 03:37
J'ai trouvé !

Enfin grace à vous !!!! merci d'avoir été aussi réactif, et de l'aide apportée.

J'ai rempli les fonctions dans ma page qui me permet la connection Mysql :

if (!get_magic_quotes_gpc())
//on rajoute des slash pour les magic_quote en OFF
{
// on supprime les caractères spéciaux
$pseudo = AddSlashes ($_POST[pseudo]);
$email = AddSlashes ($_POST[email]);
$sujet = AddSlashes ($_POST[sujet]);
$message = AddSlashes ($_POST[message]);

}
//on enleve les caracteres speciaux et les balises html
$sujet = $sujet;
$message = $message;


Et ça fonctionne merci encore pour le conseil.

Cordialement
Spirit
0