Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Validator et &

16 réponses
Avatar
Denis Beauregard
Bonjour,

J'essaie de valider du code généré avec du PHP avec validator.w3.org
et j'ai quelques problèmes avec les &.

Si mon code produit ceci :

<a href="fiche.php?op=af&no=641217" target="top">GRENIER, A</a>

validator croit que le &no est une entité inconnue et donne un message
d'erreur.

>general entity "no" not defined and no default entity

J'ai donc remplacé le & par %26 et si je place la souris sur le
lien, je vois la même URL fiche.php?op=af&no=641217 dans la barre
en bas de la page.

Mais si je suis ce lien, cela ne fonctionne plus ! L'URL de la ligne
d'adresse est celle générée en PHP,
http://site.com/fiche.php?op=af%26no=641217 et la fiche demandée
n'apparaît plus. Je pensais que PHP transformerait le %26 en & de
façon transparente.

Ce cas est tellement commun que je ne vois pas pourquoi à la fois
validator et PHP ont des demandes opposées.

Je peux toujours ramener le & dans le code, mais j'aurais voulu
avoir une page sans erreur.


Denis

6 réponses

1 2
Avatar
Sergio
Denis Beauregard a écrit :
Le Mon, 08 Feb 2010 15:39:03 +0100, Sergio
écrivait dans
fr.comp.infosystemes.www.auteurs:

Denis Beauregard a écrit :
Bonjour,

J'essaie de valider du code généré avec du PHP avec validator.w3.org
et j'ai quelques problèmes avec les &.

Si mon code produit ceci :

<a href="fiche.php?op¯&nod1217" target="top">GRENIER, A</a>

validator croit que le &no est une entité inconnue et donne un message
d'erreur.

general entity "no" not defined and no default entity




Il faut remplacer le & par l'entité &amp;

(et en passant target="_top" si tu veux sortir d'une frame)

Ta ligne :
<a href="fiche.php?op¯&amp;nod1217" target="_top">GRENIER, A</a>



Est-ce une différence entre Seamonkey et les autres ?

Chez moi, avec target="top", cela ouvre un autre onglet dans SM, mais
pas avec _top. Et par la suite, mon lien pour fermer ne marche pas
avec _top.



D'après la norme : (http://www.w3.org/TR/html401/present/frames.html#adef-target )
target="_top" : ouvre dans la fenêtre courante en occupant toute la fenêtre. Permet de "sortir" d'une frame.
target="xxxx" : Ouvre le lien dans la frame de nom xxxx. Si cette frame n'existe pas, le navigateur ouvre une nouvelle fenêtre, dont
la frame s'appelera "xxxx".

Les navigateurs à onglet, ouvrent en général un nouvel onglet plutôt qu'une fenêtre.

Tu remarquera que si tu recliques dessus ton lien, il n'ouvrira pas un nouvel onglet, mais il ouvrira le lien dans l'onglet
précédemment créé.

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Denis Beauregard
Le Mon, 08 Feb 2010 18:14:43 +0100, Sergio
écrivait dans
fr.comp.infosystemes.www.auteurs:

Denis Beauregard a écrit :
Le Mon, 08 Feb 2010 15:39:03 +0100, Sergio
écrivait dans
fr.comp.infosystemes.www.auteurs:

Denis Beauregard a écrit :
Bonjour,

J'essaie de valider du code généré avec du PHP avec validator.w3.org
et j'ai quelques problèmes avec les &.

Si mon code produit ceci :

<a href="fiche.php?op¯&nod1217" target="top">GRENIER, A</a>

validator croit que le &no est une entité inconnue et donne un message
d'erreur.

general entity "no" not defined and no default entity




Il faut remplacer le & par l'entité &amp;

(et en passant target="_top" si tu veux sortir d'une frame)

Ta ligne :
<a href="fiche.php?op¯&amp;nod1217" target="_top">GRENIER, A</a>



Est-ce une différence entre Seamonkey et les autres ?

Chez moi, avec target="top", cela ouvre un autre onglet dans SM, mais
pas avec _top. Et par la suite, mon lien pour fermer ne marche pas
avec _top.



D'après la norme : (http://www.w3.org/TR/html401/present/frames.html#adef-target )
target="_top" : ouvre dans la fenêtre courante en occupant toute la fenêtre. Permet de "sortir" d'une frame.
target="xxxx" : Ouvre le lien dans la frame de nom xxxx. Si cette frame n'existe pas, le navigateur ouvre une nouvelle fenêtre, dont
la frame s'appelera "xxxx".

Les navigateurs à onglet, ouvrent en général un nouvel onglet plutôt qu'une fenêtre.

Tu remarquera que si tu recliques dessus ton lien, il n'ouvrira pas un nouvel onglet, mais il ouvrira le lien dans l'onglet
précédemment créé.



Merci, je comprends mieux maintenant ce qui se passe. Cela fait
tellement longtemps que j'ai abandonné les frames que je n'ai pas
cliqué tout de suite sur ce qui se passait réellement. Je vois
aussi pourquoi ma fenêtre ne se fermait pas avec un _top.

Dans mon cas, chaque fenêtre correspond à une fiche d'information.
J'ai modifié mon code pour avoir par exemple

<a href="fiche.php?op¯&amp;nod1217" target="t641217">GRENIER,
A</a>

et cela ouvre une fenêtre différente pour chaque fiche, chacune avec
son lien "fermer la fenêtre". Je laisserai le client décider s'il
préfère une seule fenêtre ou plusieurs.


Denis
Avatar
Olivier Miakinen
Le 08/02/2010 18:32, Denis Beauregard a écrit :

Merci, je comprends mieux maintenant ce qui se passe. Cela fait
tellement longtemps que j'ai abandonné les frames [...]



C'est normal d'avoir abandonné les frames depuis si longtemps (depuis au
moins dix ans je dirais). Ce qui me semble beaucoup moins normal, c'est
justement de les reprendre aujourd'hui :
<http://openweb.eu.org/articles/finir_cadres>.

[...] Je laisserai le client décider s'il
préfère une seule fenêtre ou plusieurs.



Tiens, tu peux même lui laisser décider dès maintenant, en lui apprenant
à choisir tout seul entre rester dans la même fenêtre ou en ouvrir une
nouvelle : <http://www.miakinen.net/vrac/fenetre>.
Avatar
Sergio
Denis Beauregard a écrit :

D'après la norme : (http://www.w3.org/TR/html401/present/frames.html#adef-target )
target="_top" : ouvre dans la fenêtre courante en occupant toute la fenêtre. Permet de "sortir" d'une frame.
target="xxxx" : Ouvre le lien dans la frame de nom xxxx. Si cette frame n'existe pas, le navigateur ouvre une nouvelle fenêtre, dont
la frame s'appelera "xxxx".

Les navigateurs à onglet, ouvrent en général un nouvel onglet plutôt qu'une fenêtre.

Tu remarquera que si tu recliques dessus ton lien, il n'ouvrira pas un nouvel onglet, mais il ouvrira le lien dans l'onglet
précédemment créé.



Merci, je comprends mieux maintenant ce qui se passe. Cela fait
tellement longtemps que j'ai abandonné les frames que je n'ai pas
cliqué tout de suite sur ce qui se passait réellement. Je vois
aussi pourquoi ma fenêtre ne se fermait pas avec un _top.

Dans mon cas, chaque fenêtre correspond à une fiche d'information.
J'ai modifié mon code pour avoir par exemple

<a href="fiche.php?op¯&amp;nod1217" target="t641217">GRENIER,
A</a>

et cela ouvre une fenêtre différente pour chaque fiche, chacune avec
son lien "fermer la fenêtre". Je laisserai le client décider s'il
préfère une seule fenêtre ou plusieurs.



Plus simple de mettre target="_blank" ? Non ?
http://www.w3.org/TR/html401/types.html#type-frame-target

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Denis Beauregard
Le Mon, 08 Feb 2010 19:15:39 +0100, Sergio
écrivait dans
fr.comp.infosystemes.www.auteurs:

Denis Beauregard a écrit :

<a href="fiche.php?op¯&amp;nod1217" target="t641217">GRENIER,
A</a>

et cela ouvre une fenêtre différente pour chaque fiche, chacune avec
son lien "fermer la fenêtre". Je laisserai le client décider s'il
préfère une seule fenêtre ou plusieurs.



Plus simple de mettre target="_blank" ? Non ?
http://www.w3.org/TR/html401/types.html#type-frame-target



C'est probablement le mot-clé que j'aurais dû mettre au tout début.
Mais si j'ai la possibilité d'afficher plusieurs fiches, je pense
que certains clients vont apprécier. Si le client veut une seule
fiche à la fois, j'irai avec le _blank.

Merci pour ce détail.


Denis
Avatar
Denis Beauregard
Le Mon, 08 Feb 2010 13:41:51 -0500, Denis Beauregard
écrivait dans
fr.comp.infosystemes.www.auteurs:

Le Mon, 08 Feb 2010 19:15:39 +0100, Sergio
écrivait dans
fr.comp.infosystemes.www.auteurs:

Denis Beauregard a écrit :

<a href="fiche.php?op¯&amp;nod1217" target="t641217">GRENIER,
A</a>

et cela ouvre une fenêtre différente pour chaque fiche, chacune avec
son lien "fermer la fenêtre". Je laisserai le client décider s'il
préfère une seule fenêtre ou plusieurs.



Plus simple de mettre target="_blank" ? Non ?
http://www.w3.org/TR/html401/types.html#type-frame-target



C'est probablement le mot-clé que j'aurais dû mettre au tout début.
Mais si j'ai la possibilité d'afficher plusieurs fiches, je pense
que certains clients vont apprécier. Si le client veut une seule
fiche à la fois, j'irai avec le _blank.

Merci pour ce détail.



Finalement, le client préfère une seule fenêtre. Chez moi, _blink
ouvre plusieurs fenêtres, alors j'ai codé cela avec une seule
fenêtre, que j'ai appelée "fenetre" !

<a href="fiche.php?op¯&amp;nod1217" target="fenetre">GRENIER,
A</a>


Denis
1 2