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 :

problème avec les apostrophes [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut problème avec les apostrophes
    Bonjour,

    L'utilisateur entre une réponse à une question dans un formulaire d'une page htlm. Cette réponse est traitée dans une page php.
    Mon programme indique à l'utilisateur que sa réponse entrée est différente de la réponse attendue chaque fois qu'il y a utilisation d'une ou de plusieurs apostrophes. J'ai essayé les stripslashes comme les addslashes, mais rien n'y fait. Voici des extraits de codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $entree = stripslashes($entree);  /*entrée de l'utilisateur*/
    $correction = "longueur d'un mètre";  /*réponse attendue*/
    $correction = stripslashes($correction);
     
     
    if ($entree ==  $correction) {
    	$score++;
                echo "Exact !";
    	}
    	else {
    	$erreurs++;
                 echo "Erreur !";
    	}
    Je vous remercie de votre aide.

  2. #2
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    J'ai pas exactement compris ce que tu cherches à faire, c'est supprimer les apostrophes de ta chaines, tu peux le faire comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entree = str_replace( "'", "", $entree);

  3. #3
    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 encore un coup de vilain magic_quotes je parie :
    Quand ton utilisateur saisie "d'un", tu reçois "d\'un".
    Par contre avec le stripslashes ca devrait marcher.
    Aucun interet de le faire sur la correction par contre.

    Fait des echo de $entree avant et apres le traitement pour voir ce qu'il en est.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Je vous remercie de vos réponse.
    Aucune des solutions proposées ne fonctionne.

    Je suis hébergé par free. Est-ce que cet hébergeur accepte le code en PHP4 ?
    Je me demande si la raison de mes déboires n'est pas là ?

    Si cet hébergeur n'accepte que le PHP3, comment on peut parvenir à régler cette question des apostrophes ?

    merci encore

  5. #5
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Si il l'accepte.

    Tu veux faire quoi plus exactement (si on comprenait mieux le problème on pourrait mieux le résoudre^^)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    str_replace( "'", "", $entree); ne fonctionne pas. Aucun résultat.

    Je crois que le problème se situe au niveau de la comparaison lorsqu'il y a une apostrophe dans l'entrée utilisateur, que l'antislasch soit ôté par stripslasches() ou pas. Par des echo $entree avant et après le code stripslaches(), , je me rends compte que l'antislach est bien présent avant et a bien disparu après. Tout va donc bien à ce niveau. Mais le résultat de la comparaison $entree / $correction est toujours erroné. Finalement j'ai essayé strcmp($entree, $correction") et là ça marche !!!
    Voici les deux codes :

    - l'ancien qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $entree = stripslashes($entree);  /*entrée de l'utilisateur*/
    $correction = "longueur d'un mètre";  /*réponse attendue*/
     
     
    if ($entree ==  $correction) {
    $score++;
                echo "Exact !";
    	}
    	else {
    	$erreurs++;
                 echo "Erreur !";
    	}
    - le nouveau qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $comparaison = strcmp($entree, $correction);
    if ($comparaison == 0) {
    $score++;
                echo "Exact !";
    	}
    	else {
    	$erreurs++;
                 echo "Erreur !";
    	}
    Quen pensez- vous ?

  7. #7
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Si ca marche comme cela pourquoi pas, cependant pourquoi ne pas faire un echo() de la valeur entré le temps de débuguer tu trouverai surement le souci.
    Par exemple un L au lieu d'un l ou bien autre chose.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    J'ai bien testé comme vous me le dites. J'y ai passé des .... heures ! Une journée à vrai dire !

    Je vais donc me contenter de l'astuce du strcmp().

    J'aurais pourtant bien aimé savoir pourquoi le str_replace() ne fonctionne pas. Cette proposition me semblait intéressante.

    Les mystères de l'informatique...

    Merci à tous pour l'attention que vous avez portée à mes questions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. Problème avec les apostrophes
    Par alizea77 dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2008, 12h08
  3. Problème avec les apostrophes
    Par loverdev dans le forum VB.NET
    Réponses: 7
    Dernier message: 28/08/2007, 11h30
  4. Problème avec les apostrophes ASP - VBScript
    Par memebut dans le forum ASP
    Réponses: 4
    Dernier message: 19/08/2005, 15h16
  5. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39

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