Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/03/2011, 09h34   #1
Invité de passage
 
Inscription : novembre 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 15
Points : 3
Points : 3
Par défaut Autocompletion et apostrophe

Bonjour,

J'ai un problème avec un script d'autocompletion pour la gestion des apostrophes dans la requête, lorsque je tape ' une erreur se produit et si la valeur recherchée contient un apostrophe la requête n'est pas effectuée.

Voici comment je rentre ma variable dans ma base :
Code :
$detailProb = addslashes($detailProb);
Et voilà comment je l'exploite :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if(isset($_POST['queryString']))                 // si une recherche est lancée
        {
            $queryString = $_POST['queryString'];  // on récupère les paramètres de la recherche
 
            if(strlen($queryString) >= 2)                 // si il y a 2 lettres ou plus de frappées
            {
                                                        // on execute la requete
                $query = $db->sql_query("SELECT descProb FROM probleme WHERE descProb LIKE '%$queryString%' ORDER BY descProb"); 
 
 
 
                if($query)                                 // si la requête s'est bien déroulée
                {
                    while ($result = $db ->sql_fetchrow($query)) 
                    {
  // on affiche les résultats de la requête, et on soumet le formulaire lors du clic sur une ligne
 
                        echo '<li onClick="fill2(\''.$result[descProb].'\');document.getElementById(\'formRech2\').submit();">'.$result[descProb].'</li>';
 
 
                       }
                } 
                else                                     
                {
                                                        // si la requête n'a pas fonctionnée, on affiche un message d'erreur
                    echo 'Erreur : Il y a eu un probleme avec la requete.'; 
                }
            } 
            else                                          // si il y a moins de 2 touches de frappées, on ne fait rien
            {
            } 
        } 
        else 
        {
            echo 'Erreur';                                // si la recherche n'a pu être récupérée, on affiche un message d'erreur
        }
    }
Comment puis je gérer ce maudit apostrophe ?

Merci d'avance pour votre aide.
dogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2011, 11h34   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
addslashes coté php ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2011, 11h51   #3
Invité de passage
 
Inscription : novembre 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 15
Points : 3
Points : 3
Citation:
Envoyé par SpaceFrog Voir le message
addslashes coté php ?
Oui, c'est ce qui pose problème je suppose, comment doit je formater ma variable ? J'ai aussi essayé avec mysql_real_escape_string mais le résultat est le même.. Ma variable est bien integrée dans ma base SQL avec l'apostrophe, je la vois bien dans mon menu d'autocompletion lors de la recherche mais lorsque je clique dessus dans mon menu d'autocompletion elle n'est pas renvoyée dans mon champ input
Code :
<input type="search" name="recherche" size="40" value=""  id="inputString2" onKeyUp="lookup2(this.value);" onBlur="fill2();" />
dogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2011, 14h45   #4
Membre du Club
 
Avatar de Billy KiT
 
Inscription : mars 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 47
Points : 59
Points : 59
Le résultat HTML semble être le suivant :

Code :
<li onClick="fill2('j'ai');document.getElementById('formRech2').submit();">j'ai</li>'
Le mot s'affiche mais le javascript contient une erreur.
If faut essayer de "slasher" seulement l'apostrophe dans le onclick.

Code :
1
2
 
echo '<li onClick="fill2(\''.str_replace("'","\'",$result[descProb]).'\');document.getElementById(\'formRech2\').submit();">'.$result[descProb].'</li>';
Billy KiT est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/03/2011, 23h40   #5
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Côté php il faut toujours utiliser mysql_real_escape_string avec l'extension mysql (et non addslashes).

Pour l'affichage de tes variables utilises htmlspecialchars dans le code html, mais plus spécifiquement si tu veux mettre un antislash uniquement sur des caractères choisis tu peux utiliser addcslashes
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/03/2011, 14h50   #6
Invité de passage
 
Inscription : novembre 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 15
Points : 3
Points : 3
Merci beaucoup pour ces infos, ça marche nickel.
dogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 14h59   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
conseiller de passer en ISO pour des accents ???

regarde plutot par là http://j-willette.developpez.com/tut...-site-en-utf8/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/03/2011, 16h57   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par SpaceFrog Voir le message
conseiller de passer en ISO pour des accents ???

regarde plutot par là http://j-willette.developpez.com/tut...-site-en-utf8/
???

En quoi le fait d'utiliser htmlspecialchars pour afficher des variables dans le code html ou l'utilisation d'addcslashes pour échapper des caractères choisis, a-t-il un quelconque rapport avec le fait de "conseiller de passer en ISO pour des accents" ?
Personne n'a parlé d'accents ou d'encodage dans ce topic, et par ailleurs htmlspecialchars ne traite pas les caractères accentués...
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 17h05   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
en effet ...
c'est manifestement un gros trompage de post ...
maintenant faut que je retrouve l'autre ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h34.


 
 
 
 
Partenaires

Hébergement Web