Aller au contenu

Sujets conseillés

Posté

Bonjour à tous,

Dans ma croisade pour rendre mon site web standard, le validateur m'a débouté pour des URLs intégrant des paramètres pourtant simples :

Line 49, column 52: cannot generate system identifier for general entity "display"

...mint3/annuaire_browse.php?mode=top10&display=1">Passer en affichage liste</a>

Il prend le symbole & de l'URL pour le début d'une entité et du coup ne trouve jamais le ;

Comment faire je pédale complètement. Les href de mes liens sont construits grâce à un $_SERVER['REQUEST_URI'] concaténée avec les paramètres supplémentaires en PHP.

Merci à tous pour vos réponses

ps: je précise qu'avant ça, mon doc est validé XHTML transitionnel.

Posté

C'est assez simple, il suffit de rajouter un petit bout de code dans tes scripts php:

ini_set('arg_separator.output', '&');

Cela permettra aux URLs générées automatiquement (comme celles avec un identifiant de session) d'avoir & au lieu de & .

Assures-toi que tu ne crées pas toi-même des mauvais liens dans tes scripts.

Posté

Merci Dan

j'ai inséré la fonction en haut de page, mais mes URLs ne sont toujours pas encodées.

pour info, voilà comment sont générées mes URL en PHP (attention les yeux)

$visual .= '<a href="'.$_SERVER['REQUEST_URI'].'&id='.$id.'&note='.$i.'" title="Attribuer la note '.$i.'"><img src="images/point_vide.gif" alt="commmint note slot"/></a>';

Je n'y comprends rien :wacko:

Posté

Salut,

C'est ce que je craignais, elles sont générées dans le code.

Remplaces ton bloc par

$visual .= '<a href="'.$_SERVER['REQUEST_URI'].'&id='.$id.'&note='.$i.'" title="Attribuer la note '.$i.'"><img src="images/point_vide.gif" alt="commmint note slot"/></a>';

J'ai remplacé les 2 occurences de & par &

Dan ;)

PS: tu dois avoir d'autres endroits dans le code php. Il faut que tu remplaces tous les & des URLs par &

Attention à la recherche/remplacement global, le & se trouva ailleurs aussi :(

Posté

Merci Dan, Je n'en ai pas tant que ça.

je vais essayer aussi avec des htmlentities pour encoder automatiquement les chaines qui peuvent l'être en sortie. C'est assez galère en fait.

Posté

Tout est nickel, bravo !

jusqu'au prochain défi CSS :lol:

Posté
Tout est nickel, bravo !

Bravo à toi pour la validation, parce que ce ne sont pas ces quelques & qui représentent le gros oeuvre :)

Dan

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...