IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comparaison de chaîne pas le même résultat sous IE et Firefox


Sujet :

Langage PHP

  1. #21
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essaie sans l'include pour voir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Ben sans l'include j'ai une erreur forcément ???

    Je comprends pas là ...

  3. #23
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    J'ai autrement, je suis passé directement par sql, j'ai remplacé le include par:
    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é: Pas d'erreur.

    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

  5. #25
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    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

    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>';
    }
    }
    Résultat:

    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.

  7. #27
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    La chaîne résulte d'une fonction AJAX donc encodé en UTF8, par contre je ne vois pas comment la repasser en ISO ?

  9. #29
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Je vais péter un câble maintenant même sous firefox cela ne fonctionne plus.
    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>';
    }
    }
    C'est bien sur le tableau category_array que j'ai des d & # 0 3 9

    Résultat:
    129:arts, antiquités : architecture, matériaux : eléments d'architecture==arts, antiquités : architecture, matériaux : eléments d'architecture DIFFERENT

  11. #31
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde dans ta source HTML ce qu'il écrit exactement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Code source :

    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>
    Pas de caractères anormaux

  13. #33
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Sans rien cacher cela va être dur car je n'y vois plus rien, je suis dans le brouillard .

    Avec ce code:
    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>';
    }
    }
    * Sous Firefox et IE - $categorie=arts, antiquités
    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:
    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
    * 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)

    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:

    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
    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
    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>';
    }
    }
    * Sous Firefox et IE - $categorie=arts, antiquités : architecture, matériaux : eléments d'architecture

    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 !!!!

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Résolu par un str_replace('&#039;', "'", $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.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/01/2015, 13h45
  2. Réponses: 0
    Dernier message: 26/05/2010, 11h24
  3. La balise hr n'a pas le même rendu sous IE et firefox. (décalage sous ie)
    Par Marc22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/03/2010, 15h26
  4. Réponses: 1
    Dernier message: 31/01/2008, 17h13
  5. Le style CSS ne donne pas le même résultat entre IE7 et Firefox
    Par beegees dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 21/09/2007, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo