Essaie sans l'include pour voir.
Essaie sans l'include pour voir.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Ben sans l'include j'ai une erreur forcément ???
Je comprends pas là ...
Au lieu de définir ton tableau par include, tu le fais dans ton fichier.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
J'ai autrement, je suis passé directement par sql, j'ai remplacé le include par:
Pour Arts, antiquité: Pas d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $category=($_POST['category']); $sql = "SELECT * from categories WHERE name ='".$category."'";
Pour arts, antiquités : architecture, matériaux : eléments d'architecture
Voici ce que j'ai:
ERROR: Apostrophe non fermé @ 125
STR: '
SQL: SELECT * from `categories` WHERE name = 'arts, antiquités : architecture, matériaux : eléments d'architecture'
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'architecture'' at line 1
C'est normal puisque tu as des guillemets dans ta chaine.
Il faut utiliser mysql_real_escape_string()
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Je me suis trompée en voulant vérifiéer par sql, mauvaise idée puisque je ne retrouverais pas le nom de ma catégorie dans ma table puis que le post résulte d'un arbre.
Ce pb commence à me prendre la tête
Donc j'ai inscris comme tu me l'as demandé Sabotage, directement dans le tableau array au lieu de l'include
Résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $categories_array = array ("1" => array ("Arts, Antiquités"), "22" => array ("Arts, Antiquités : Architecture, Matériaux"), "129" => array ("Arts, Antiquités : Architecture, Matériaux : Eléments d'architecture")); $category=($_POST['category']); foreach ($categories_array as $key => $value) { list($category_name) = $value; echo $key . ':' . $category . '==' . strtolower($category_name); if ( strcmp(strtolower($category_name),$category) == 0) { $category = $key; echo ' EGAL<br>'; } else { echo ' DIFFERENT<br>'; } }
129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT
C'est le d & # 0 3 9 ; pour l'apostrophe qui ne fonctionne pas.
Oui remarque je suis bête, deux chaînes pour apparaitre identique dans le navigateur mais être différente dans la source.
Si tu utilises des entités html pour constuire ton formulaire, il faut les décoder a l'arrivée.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
La chaîne résulte d'une fonction AJAX donc encodé en UTF8, par contre je ne vois pas comment la repasser en ISO ?
Si elles etaient d'un encodage différent, tu le verrais a l'affichage.
si tu as des & # 0 3 9, il faut utiliser html_entity_decode()
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Je vais péter un câble maintenant même sous firefox cela ne fonctionne plus.
C'est bien sur le tableau category_array que j'ai des d & # 0 3 9
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $categories_array = array ("1" => array ("Arts, Antiquités"), "22" => array ("Arts, Antiquités : Architecture, Matériaux"), "129" => array ("Arts, Antiquités : Architecture, Matériaux : Eléments d & # 0 3 9 ;architecture")); $category= $_POST['category']; foreach ($categories_array as $key => $value) { list($category_name) = $value; echo $key . ':' . $category . '==' . strtolower( html_entity_decode($category_name)); if ( strcmp(strtolower(html_entity_decode($category_name)),$category) == 0) { $category = $key; echo ' EGAL<br>'; } else { echo ' DIFFERENT<br>'; } }
Résultat:
129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT
Regarde dans ta source HTML ce qu'il écrit exactement.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Code source :
Pas de caractères anormaux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT<br>
Ca serait bien que tu nous reparles de ton code precisemment et sans rien nous cacher
Je ne vois pas par exemple pourquoi des d & # 0 3 9; apparaissent tout d'un coup dans le tableau alors qu'initialement il n'y avait rien.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Sans rien cacher cela va être dur car je n'y vois plus rien, je suis dans le brouillard .
Avec ce code:
* Sous Firefox et IE - $categorie=arts, antiquités
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $categories_array = array ("1" => array ("Arts, Antiquités"), "22" => array ("Arts, Antiquités : Architecture, Matériaux"), "129" => array ("Arts, Antiquités : Architecture, Matériaux : Eléments d'architecture")); $category= $_POST['category']; foreach ($categories_array as $key => $value) { list($category_name) = $value; echo $key . ':' . $category . '==' . strtolower(html_entity_decode($category_name)); if ( strcmp(strtolower(html_entity_decode($category_name)),$category) == 0) { $category = $key; echo ' EGAL<br>'; } else { echo ' DIFFERENT<br>'; } }
OK j'obtiens:
1:arts, antiquités==arts, antiquités EGAL
22:1==arts, antiquités : architecture, matériaux DIFFERENT
129:1==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT
et en code source de ma page:
* Sous Firefox et IE - $categorie=arts, antiquités : architecture, matériaux : eléments d'architecture (ce que je saisi par autocomplétion dans mon formulaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 1:arts, antiquités==arts, antiquités EGAL<br>22:1==arts, antiquités : architecture, matériaux DIFFERENT<br>129:1==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT
Cela ne fonctionne pas j'ai:
1:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités DIFFERENT
22:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux DIFFERENT
129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT
Code source:
Maintenant si je change mon code et que je remplace dans mon tableau manuellement bien sur le d & # 0 3 9 par ' ce qui donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 1:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités DIFFERENT<br>22:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux DIFFERENT<br>129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT
* Sous Firefox et IE - $categorie=arts, antiquités : architecture, matériaux : eléments d'architecture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $categories_array = array ("1" => array ("Arts, Antiquités"), "22" => array ("Arts, Antiquités : Architecture, Matériaux"), "129" => array ("Arts, Antiquités : Architecture, Matériaux : Eléments d'architecture")); $category= $_POST['category']; foreach ($categories_array as $key => $value) { list($category_name) = $value; echo $key . ':' . $category . '==' . strtolower(html_entity_decode($category_name)); if ( strcmp(strtolower(html_entity_decode($category_name)),$category) == 0) { $category = $key; echo ' EGAL<br>'; } else { echo ' DIFFERENT<br>'; } }
Cela fonctionne j'ai:
1:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités DIFFERENT
22:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux DIFFERENT
129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture EGAL
Purée cela doit pas être difficile à régler !!!!!
C'est à moi que j'en veux là, ne le prenez pas mal !!!!
Résolu par un str_replace(''', "'", $category_name)
Merci Sabotage pour ta patience, je crois que tu n'es pas prêt à m'oublier et tu mérite une Biz.
Laëtitia.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager