[RESOLU] Problème avec $_POST

ebn
Eléphanteau du PHP | 16 Messages

19 sept. 2013, 11:53

Bonjour à tous,

Je rencontre des difficultés à traiter le $_POST, je m'explique.

Mon formulaire classique envoie les informations suivantes:

reference, name.. des input texte pour la plupart.

lorsque dans le formulaire j'entre dans référence une chaine du genre toto++ et dans name une chaine genre toto , le $_POST['reference] me retourne toto sans les '++' alors que la source (dans firebug) est bien reference=toto++&name=toto....

Savez-vous si il y a un réglage php à faire ou autre?

Merci

Eléphant du PHP | 267 Messages

19 sept. 2013, 13:00

salut,

il faut que tu utilises les fonctions urlencode() et urldecode()
car le signe + a une signification spéciale dans les url

@+
dix2

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 sept. 2013, 13:03

Salut,

Montre le formulaire en question (le source html) et ce qui est affiché avec var_dump($_POST); lorsque tu valide le formulaire.


@+
Il en faut peu pour être heureux ......

ebn
Eléphanteau du PHP | 16 Messages

19 sept. 2013, 13:58

Merci,
Pour le url_decode, il décode pas les ++ non plus sur le $_POST['reference'].
alors pour le formulaire (un résumé parce qu'il est long)
<form action="pdc/offers/" method="POST" class="ajax marginTop20 form_offer">
                <fieldset>
                    <legend>Créer une prestation</legend>
                    <p>
                        <label for="reference">Référence :</label>
                        <input type="text" name="reference" id="reference" class="required" />
                    </p>
                    <p>
                        <label for="client">Client :</label>
                        <input class="client" type="text" name="client" id="client" />
                    </p>
                    <p>
                        <label for="name">Nom :</label>
                        <input type="text" name="name" id="name" />
                    </p>

                      
                        <input type="submit" value="Créer" />
et le var_dump du $_POST ou j'ai rentrée toto++ dans le formulaire.

 ["reference"]=> string(6) "toto " ["client"]=> string(0) "" ["name"]=> string(0) "" ["probability"]=> string(1) "0" ["referent_manager"]=> string(0) "" ["project_manager"]=> string(0) "" ["starting_date_visu"]=> string(0) "" ["starting_date"]=> string(0) "" ["ending_date_visu"]=> string(0) "" ["ending_date"]=> string(0) "" ["add_profil"]=> string(0) ""}

ebn
Eléphanteau du PHP | 16 Messages

20 sept. 2013, 10:38

Pour info,

Le problème venait d'une requête ajax qui m'avait échappé.
A savoir qu'avec ajax, les caractères réservés sont protégés et il est nécessaire d'utiliser encodeURIComponent avant d'envoyer les data (en Post pour ma part).

suite à ça mon problème a disparu.

merci à tous