Problème pour récupérer un $_POST avec " et '

Eléphant du PHP | 116 Messages

23 avr. 2010, 16:54

Bonjour,

Je fais un formulaire, si jamais tout les champs ne sont pas compléter je réaffiche ce qui à été entré préalablement dans les champs.
<input type="text" name="brand_create" id="brand_create" size="20" class="formtext" <?php if(isset($imgerror) || isset($pdferror) || isset($error)) echo "value='".$_POST['brand_create']."'";?>/>
Seul problème, si je t'appe par exemple

Code : Tout sélectionner

l'avion "concorde"
Cela pose problème avec les guillements et apostrophe. et ne raffiche que "l"

Pour protégé une insertion vers mysql j'ai vu que c'était mysql_real_escape_string().

Comment on fais quand c'est pour récuperer un $_POST ?

Eléphant du PHP | 70 Messages

23 avr. 2010, 17:14

Bonjour,

regarde du côté de htmlspecialchars. Perso je récupère les $_POST avec l'operateur ternaire et htmlspecialchars

Exemple :
$brand = isset($_POST['brand_create']) ? htmlspecialchars($_POST['brand_create']) : '';

Eléphant du PHP | 116 Messages

23 avr. 2010, 17:33

Ça ne change rien, :( j'avais déjà essayé avec htmlspecialchars() mais sans succès.
J'ai toujours pas trouvé la solution, si ce n'est que pour le moment je pense à inversé :
<input type="text" name="brand_create" id="brand_create" size="20" class="formtext" <?php if(isset($imgerror) || isset($pdferror) || isset($error)) echo "value='".$_POST['brand_create']."'";?>/>
pour
<input type="text" name="brand_create" id="brand_create" size="20" class="formtext" <?php if(isset($imgerror) || isset($pdferror) || isset($error)) echo 'value="'.$_POST['brand_create'].'"';?>/>
On se sert toujours moins des guillemets que des apostrophes mais bon, c'est moche d'en arrivé à faire quelque chose qui peux bugger :/

Eléphant du PHP | 70 Messages

23 avr. 2010, 17:43

Tu as essayé avec addslashes() ?

Eléphant du PHP | 116 Messages

23 avr. 2010, 18:10

également, ca rajoute des slashes mais ca n'empêche pas de fermer l'echo
Je crois que j'ai presque tout essayé :/

Eléphant du PHP | 116 Messages

23 avr. 2010, 18:16

Bon,

J'ai fais comme ceci :
<input type="text" name="brand_create" id="brand_create" size="20" class="formtext" value="<?php if(isset($imgerror) || isset($pdferror) || isset($error)) echo htmlspecialchars($_POST['brand_create']);?>"/
Maintenant si la condition n'est pas défini, la value sera value="", est ce que ca veux dire que si je fais
isset($_POST['brand_create']) sera true ou false?

Car si c'est true, ca me pause un problème sur tout le reste du code, j'attends l'avis de quelqu'un avant d'entamé mainte modification

Eléphant du PHP | 116 Messages

23 avr. 2010, 18:31

Bon j'ai fais le test tout seul, c'est NULL.
Donc je pense que je vais faire comme ca :)