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

JavaScript Discussion :

Erreur à cause de string dans l'appelle d'une fonction


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut Erreur à cause de string dans l'appelle d'une fonction
    Bonjour,

    J'ai besoin de remplacer tous les caractères succeptible d'interagir avec un code javascript, comme par exemple remplacer ' par \' . Ceci en php. Pour expliquer plus précisement mon problème, je passe en parametre d'une fonction tes chaines ce qui donne quelque chose comme :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#" onclick="aff('div','Ceci n'est qu'un test','Ceci est un test afin de verifier si mon code fonctionne sans alterer la fonction, car si c'est l'cas ca va partir en couille','01052007');">clic</a>

    Il se trouve donc que le caractère ' n'est pas très apprècié, mais ce n'est apparement pas le seul !

    J'utilise actuellement :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $desc = str_replace("'", "\'", $desc);

    Mais il semble que d'autre caractères empêche le bon fonctionnement de la fonction. Je précise également qu'il peut se trouver des balises HTML dans les string de cette fonction qui elles sont eradiquer grace à :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    strip_tags($desc);
    $desc = ereg_replace("<[^>]*>", "", $desc);

    EDIT : Pour info, la console d'erreur firefox m'indique "unterminated string literal" mais ca ne fait pas celà sur tout les fichiers xml traité.

    Si vous avez des idées, j'suis preneur.

    En vous remerciant,
    Salutation.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Il semblerait que le problème vienne du fait que certaine string contienne un "\". Cependant, j'ai essayer d'effectuer un remplacement sur ce carractère en le doublant, mais celà ne fonctionne pas, surement une erreur de syntax, voilà ce que j'ai essayé :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $desc = str_replace("\", "\\", $desc);
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $desc = str_replace("\\", "\\", $desc);

    même en triplant, mais là, je sèche

  3. #3
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Je ne connais pas php, mais en java par exemple, comme le caractère d'echapement est aussi le '\', pour remplacer des \ par \\ il faut ecrire l'équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\\", "\\\\", $desc);
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\", "\\", $desc);
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Effectivement celà fonctionne aussi en php, malheureusement, celà ne resorbe pas mon erreur qui malgré ça reste inchangé, je ne vois vraiment pas qu'elle caractère peut alterer ma chaine de cette maniere

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Par la même occasion, j'ai modifié

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $desc = str_replace("'", "\'", $desc);

    par :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $desc = addslashes($desc);

    c'est quand même plus propre, ceci dit, ca ne règle toujours pas de unterminated string literal je ne vois toujours rien :/

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Bon, alors j'enlève les \n les \r les ' les \ mais toujours rien à faire, ca commence à devenir lourdingue là, tout ça parce certains ne sont pas foutu de faire des fichier xml potable pfff

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Essaie plutôt d'appliquer la fonction php rawurlencode. Je crois qu'elle résoud tous tes problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $desc = rawurlencode($desc);
    ERE
    Quand une tête pense seule, elle devient folle.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Je n'ai effectivement plus d'erreur, au détail près que mon text ne ressemble absolument plus à rien, tout les espaces sont encodé également. Etant donné que ces strings sont ensuite traité en javascript, y a t-il possibilité de faire quelque chose ?

    J'ai trouvé decodeURI cependant, certains caractères reste encode, peut être y-a-t-il un fonction plus compatible côté client ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    La fonction decodeURIComponent(); à l'air de répondre à mes besoins.

    Je TAG donc Résolu, merci pour l'aide apporté =)

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

Discussions similaires

  1. Espace dans l'appel d'une fonction
    Par pierre50 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/12/2007, 11h19
  2. Variable en option dans l'appel d'une fonction
    Par xian21 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 19/11/2007, 15h13
  3. Réponses: 4
    Dernier message: 30/08/2007, 18h08
  4. [PHP-JS] Variable PHP comme argument dans l'appel d'une fonction Javascript
    Par The Molo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2007, 09h00
  5. pb dans l'appel d'une fonction
    Par badboys206s16 dans le forum ASP
    Réponses: 3
    Dernier message: 04/07/2006, 08h32

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