PHP & XHTML / Encodage et feuilles de style ....

JLV
Invité n'ayant pas de compte PHPfrance

25 juil. 2006, 22:14

Bonjour, j'ai monté un petit script d'affichage en PHP dans une page xhtml. Le script fonctionne mais 2 problèmes d'affichage.

1/ Les accents
en encodage UTF8 les données récupérées de la base Sql perdent leurs accents (un point d'interrogation), mais les caractères spéciaux du code (ds l'exemple le €) sont OK : en ISO c'est le contraire ??????
echo "prix public : $row[prix_public] €<br/><br/><br/>\n";

2/la page php est liée à une page CSS ; cela fonctionne que pour des fonctions très basiques
ex :
echo "prix public : <h3>$row[prix_public] €</h3>\n"; // le h3 est bien celui de la feuille de style externe
mais pas : echo "prix public : <p class="xxx">$row[prix_public] €</p>\n"; // ... c'était prévisible

Si quelqu'un a une idée ....

Plus généralement où trouver de l'info sur CSS ET PHP combinés ?

Merci d'avance

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

25 juil. 2006, 23:58

Y a pas de "combinaison" entre php et css.. ce sont deux langages différents ayant chacun un role et un usage différent :)

Php génère du code html, css le met en forme, mais il n'y a ni lien, ni interaction entre les deux :) Il faut donc chercher l'erreur au niveau de ton css et/ou de tes classes dans le html.
Dans le cas de ton paragraphe, as-tu bien une classe ".xxx" dans ton css ? s'applique-t-elle bien au paragraphes (entre autre voire à celui-ci en particulier s'il est dans des div) ?

Edit : ton problème vient en fait du mélange des guillemets. Tu dois d'ailleurs avoir un message d'erreur te disant Parse Error (erreur de syntaxe en php) Line n (ca serait plus simple si tu nous disais tout et que l'on ait pas besoin de deviner :p)
En utilisant la balise [ php ] pour présenter ton code tu le verrais tout de suite à la coloration syntaxique :)

Il te faut soit protéger les guillemets à l'intérieur de ta chaine avec des antislshes, soit utiliser des apostrophes pour la déclarer (attention le comportement est différent entre les guillemets et les apostrophes)
echo "prix public : <p class=\"xxx\">$row[prix_public] €</p>\n";
// ou
echo 'prix public : <p class="xxx">'.$row[prix_public] .'€</p>';
// mais pas
echo "prix public : <p class="xxx">$row[prix_public] €</p>\n";

JLV
Invité n'ayant pas de compte PHPfrance

26 juil. 2006, 22:22

Merci pour ta réponse rapide ... et efficace

Je sais que PHP et CSS sont deux langages ; en fait j'utilise plus souvent CSS que PHP (je sais, ca se voit :? ).
Mine de rien c'est hyper interessant de pouvoir reprendre des sites XHTML pour en faire des sites dynamiques avec PHP en utilisant les feuilles de style CSS existantes ....

La soluce est :
echo "prix public : <p class=\"xxx\">$row[prix_public] €</p>\n";
(La classe xxx existe bien sur dans la css externe .... )

... j'ai plus qu'à résoudre mon problème d'accents ....

bye