Incompréhensibles ces accents Oo

Casper
Invité n'ayant pas de compte PHPfrance

13 févr. 2007, 11:38

Bonjour,

Voici mon p'tit problème :

J'ai fait une requête toute simple qui m'extraie un enregistrement de la base. No problemo. Comme il s'agit d'une procédure d'update, j'affiche le tout dans des champs de formulaire. Problemo avec les accents. Si mon champ a le maheur de contenir un guillement ou un apostrophe, la valeur renvoyée est tout ce qu'il y a avant ce caractère alors que si je fais un echo de mon $row["macolonne"], ca m'affiche bien tout correctement.

Exemple :
$mavar = $row["macolonne"];//123 rue de l'Albatros

Si je fais un echo de $mavar, ca m'affichera bien 123 rue de l'Albatros.
Dans mon champ texte, l'echo de $mavar affiche 123 rue de l :shock:

A quoi cela peut-il être dû ?

Merci à l'avance

Casper

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 févr. 2007, 11:40

Dans ton HTML, dans VALUE mets des " autour des valeurs. Tu as dû ne rien mettre à ce niveau.

Casper
Invité n'ayant pas de compte PHPfrance

13 févr. 2007, 12:10

Merci pour cette réponse rapide charabia.

Mon champ est un peu particulier puisque je l'écris en PHP suivant une condition donc j'avais mis des simples quotes autour de mes attributs HTML genre type='text' value='$var' mais il semblerait que ca ne soit pas suffisant. En mettant des \" ca marche nettement mieux :wink:

C'est RÉSOLU !!!

Casper
encore merci...

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

13 févr. 2007, 12:23

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)


Quant à ton problème, c'est effectivement que dans le code html généré, l'apostrophe de ta valeur indiquait la fin de la valeur de l'attribut :) Une autre solution pourrait être de transformer ces valeurs avec htmlentities, mais ca reste plus propre d'utiliser des guillemets (même si les apostrophes sont autorisées).
Je te recommande d'ailleurs d'utiliser les apostrophes pour délimiter tes chaiens en php. Ca oblige à sortir les variables, mais ca allège l'écriture et à mon avis c'est beaucoup plus lisible, surtout garce à la coloration syntaxique :)
echo "<input type='text' value=\"$maVariable\" ... />";
// et 
echo '<input type="text" value="'.$maVariable.'" ... />';
(bon c'est sur, sur 2 lignes, ça se voit pas trop, mais sur 300 lignes de code, ca fait une sacré différence ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...