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 certains caractéres dans variable


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut Problème avec certains caractéres dans variable
    salut à tous,

    j'ai un souci avec les carateres "+" et "&", dans mes variables.

    je les passe dans mon url avec un javascript,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    maChaine="+P5115325";
    window.location="mapage.php?article="+maChaine+"";
    ça s'affiche bien dans la barre d'adresse,
    mais quand je les recupere avec $_REQUEST['article'], il me vire le caractere indiqué.

    merci pour votre aide

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    tu dois urlencoder ta variable car + est un caractère spécial.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    ok merci j'essaye ça

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Et puis la urldecoder

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    C'est fait automatiquement à la réception de la requète

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    bon ça change rien.

    l'url est bonne mais le $_REQUEST me transforme le + par un espace, j'ai donc rusé.

    je remplace le + dans le javascript par %2
    et je remplace le %2 dans le php par +.

    bon c'est sur c'est du bricolage mais ça fera rustine le temps de trouver la vraie raison

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    C'est pas normal. montre ton code ?

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    Merci pour ton aide.

    J'ai trouvé une fonction javascript pour le "urlencode", car j'arrivais pas à combiner le javascript et le php.

    Voici mon code javascript éxecuter sur le onChange d'une textbox :

    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
     
    function urlencode(ch) {
       ch = ch.replace(/[+]/g,"%2") 
       return escape(ch) 
    }
    function infosart(art,bobine,init,emp,qte,nomemp){
    	if (art==""){
    		window.alert('Veuillez saisir un article.')
    		document.form1.article.focus();
    	}else{
    		var maChaine = art;
    		var monUrl="mapage.php?article="+urlencode(art)+"&bobine="+bobine+"&init="+init+"&emp="+emp+"&qte="+qte+"&nomemp="+nomemp+"";
    		alert(monUrl);
    		window.location=monUrl;
    	}
    }
    Et mon php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_REQUEST['article'])){
        $article=str_replace('%2','+',$_REQUEST['article']);
    }

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    euh j'aurais préféré le code propre, celui ou le était transformé en espace...

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    OK désolé, le voici :

    Voici mon code javascript éxecuter sur le onChange d'une textbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function infosart(art,bobine,init,emp,qte,nomemp){
    	if (art==""){
    		window.alert('Veuillez saisir un article.')
    		document.form1.article.focus();
    	}else{
    		var monUrl="mapage.php?article="+art+"&bobine="+bobine+"&init="+init+"&emp="+emp+"&qte="+qte+"&nomemp="+nomemp+"";
    		window.location=monUrl;
    	}
    }
    Et mon php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_REQUEST['article'])){
        $article=$_REQUEST['article'];
    }
    Ensuite quand je remets la valeur dans la textbox le "+" est remplacé par un espace.

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monUrl="mapage.php?article="+escape(art)+".............

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    merci, mais c'est pareil

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    pareil que quoi ? si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(art+' '+escape(art));
    ca donne quoi ?

  14. #14
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    le "alert" m'affiche bien l'article avec le "+",
    avec ou sans le "escape" c'est la meme chose.

  15. #15
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 58
    Points
    58
    Par défaut
    bon ben je crois qu'on va arreter de cogiter là-dessus pour cette semaine !

    dans mon javascipt je remplace le "+" par sa valeur ascii
    et dans le php je fais un urldecode.

    ça depanne.

    merci pour le temps passé.

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

Discussions similaires

  1. Problème avec un ls dans un for et variable d'environnement
    Par sebtelecom dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 28/01/2013, 11h05
  2. Réponses: 1
    Dernier message: 09/10/2012, 22h10
  3. Réponses: 7
    Dernier message: 03/01/2012, 17h47
  4. Problème avec certains caractères accentués
    Par flagadda dans le forum ASP.NET
    Réponses: 7
    Dernier message: 08/10/2007, 13h31
  5. Réponses: 4
    Dernier message: 21/05/2007, 18h20

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