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 :

Signe "+" qui disparait a l'insertion dans la base !


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut Signe "+" qui disparait a l'insertion dans la base !
    Bonjour,

    Voila mon soucis, j'ai un formulaire, et les utilisateurs sont souvent amenés a ecrir "+" dans les champs de description, genre "mis en place en N+1" pour l'année suivante.

    seulement, je ne sais pas pourquoi, mais le "+" disparait a l'insertion (il a déjà disparu a la récupération de la valeur du champ) avant d'être inséré en base.

    avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['monChamps'];
    le "+" disparait.

    est ce normal ? comment faire pour garder ce symbole ? (alors que le "-" est bien conservé )

    merci de votre aide

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par hoaxpunk Voir le message
    est ce normal ?
    Non, peux-tu donner une portion de script fonctionnelle illustrant le bug ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    bah c'est un champs area, tout ce qu'il y a de plus classique
    je valide le formulaire, et lorsque je le récupère, le "+" a disparu.

    tout ce passe bien, hormis que le plus disparait

    Cela ne va pas nous aider à t'aider

    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        if ( ! empty($_GET) ) {
            print_r($_GET) ;
        }
    ?>
    <form>
        <input type="text" name="test" value="+">
        <input type="submit">
    </form>
    J'obtiens bien :

    Et toi ? As-tu le même résultat avec mon script ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Le + est un opérateur d'addtion pour mysql

    http://dev.mysql.com/doc/refman/5.0/...operators.html


    tu peux peut-être essayé en ajoutant un backslash.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    addslashes($_POST['monChamps']);

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    mon area :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="area_description" cols="100" rows="10" id="7"></textarea>
    la récupération de ma valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mesValeurs[9] = trim($_POST['area_description']);
    et si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['area_description'];
    j'ai ce que j'avais saisi mais sans le "+".

    @mygalle : je n'ai pas encore inséré ma valeur en base a ce stade.
    @seb : j'ai pas de "+" avec ton morceau code

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Mygale1978 Voir le message
    Salut,

    Le + est un opérateur d'addtion pour mysql

    http://dev.mysql.com/doc/refman/5.0/...operators.html


    tu peux peut-être essayé en ajoutant un backslash.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    addslashes($_POST['monChamps']);
    Le pb est en amont :

    seulement, je ne sais pas pourquoi, mais le "+" disparait a l'insertion (il a déjà disparu a la récupération de la valeur du champ) avant d'être inséré en base.

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Alors je reprends les infos fournies...
    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php if ( ! empty($_POST) ) echo trim($_POST['area_description']) ?>
    <form method="post">
        <textarea name="area_description" cols="100" rows="10" id="7"></textarea>
        <input type="submit">
    </form>
    Et que je soumets +2 + (-3) = -1 j'obtiens bien à l'affichage :

    Et toi si tu testes mon script ça passe ou pas ?
    N'as-tu pas d'autres traitements du formulaire ?

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Pas de traitement sur $mesValeurs ? Un array_map( ) ou autre(s) ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    autant pour moi pour l'insertion en base ^^

    Je viens de verifié ce que renvoyait mon Area au niveau de la validation AJAX, et je passe dans la variable retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //on envoi 
    	xhr.open("POST", "include/validations_formulaires.php", true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send("form="+ monFormulaire + "&" + retour);
    la valeur avec le "+"...

    donc dans le ajax, le "+" est présent, mais plus dans la récupération de cette valeur avec un echo...

  10. #10
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    ... car le + peut être considéré comme le codage d'un espace blanc.

    Faudrait faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.send("form="+ rawurlencode(monFormulaire) + "&" + retour);
    Reste plus qu'à trouver l'équivalent JS de rawurlencode( ) http://fr.php.net/rawurlencode et espérer que monFormulaire ne contienne pas toutes les valeurs à la suite les une des autres autrement les séparateurs vont sauter
    Vois si tu ne peux pas faire le rawurlencode( ) un peu plus haut dans le script, au niveau des champs.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    la valeur de mon area est dans "retour" et effectivement, toutes les valeurs y sont aussi ...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    a priori cela venait de ma validation ajax et de mon send(), j'ai trouver une solution ici:

    http://www.developpez.net/forums/d18...lace-p-espace/

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

Discussions similaires

  1. Requête d'insertion dans une base ACCESS
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/11/2006, 17h41
  2. [C#] Insertion dans une base Access .mdb
    Par borgfabr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/03/2005, 15h30
  3. Réponses: 10
    Dernier message: 24/02/2005, 14h57
  4. Problème d'insertion dans la base.
    Par roots_man dans le forum ASP
    Réponses: 2
    Dernier message: 14/09/2004, 12h56
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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