[Debut.] Validation de code XHTML strikt pour url

Eléphant du PHP | 72 Messages

06 août 2005, 09:40

Bonjour,

Je n'arrive pas a valider le fragment de code suivant pour URL et aussi pour E-mail.

Est-ce qu'il existe une possibilite pour le faire?

Mes adresses sont stockees dans une BdD et appelees ensuite dans un tableau pour affichage.

Code : Tout sélectionner

<td class = "c"> <a href=" http://<?php echo $url; ?>"><?php print($ligne["intadresse"]); ?></a><?php ?> </td>
J'ai toujours ce message d'erreur avec


line 325 column 7 - Warning: <a> escaping malformed URI reference
Les valeurs chargees dans les variables php sont par exemple:
3w.ici.com ou [email protected]
3w.RIP.org ou [email protected]
L'autre question interressante est: existe t'il une autre maniere de formuler ce code qui soit plus adhequoite?

D'avance merci

Marc_3

Eléphanteau du PHP | 28 Messages

06 août 2005, 11:39

Euh je vois un espace d'ici entre le http:// et la valeur injectée PHP.

Peut-être à cause de cela.

Et ça:
<?php
?> </td>
Tu peux juste mettre </td>, inutile de rouvrir une balise <?php si c'est pour la fermer directement.

Au passage on dit adéquate.

Et au final, ceci est une solution simple, du moment que tu sécurise cette variable injectée par l'url...


Lpu8er

Eléphant du PHP | 72 Messages

08 août 2005, 09:42

Merci pour la reponse,

j'ai essaye mais pas moyen, le test me donne toujours la meme faute.

Les espaces ne semblent pas jouer un role car je les ai tous supprimes.

(La reponse est tres adhequate et j'apprecie tes efforts pour la preservation du francais dans sa forme originale en ligne (sans dec.).)

Une autre idee peut-etre?

Marc_3

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

08 août 2005, 10:45

peut-être des caractères spéciaux genre & à encoder en HTML
ou rajouter l'attribut "title" pour tes balises <a>

Mammouth du PHP | 543 Messages

08 août 2005, 10:47

Peux tu remettre ton code dans sa forme actuelle, et l'erreur retournée.

Eléphant du PHP | 72 Messages

09 août 2005, 11:16

Oui bien sur,

Alors le code dans sa forme actuellle

Code : Tout sélectionner

<td class = "b"> <a href="http://<?php echo$url;?>"><?php print($ligne["intadresse"]);?></a> </td> <td class = "b"> <a href="mailto:<?php echo$email;?>"><?php print($ligne["email"]);?></a> </td>
et le message d'erreur de mon editeur PSPad, la on ne peut pas parle de message d'erreur mais de warning.
Found 0 errors 4 warnings
line 310 column 1 - Warning: <a> escaping malformed URI reference
line 313 column 1 - Warning: <a> escaping malformed URI reference
line 329 column 1 - Warning: <a> escaping malformed URI reference
line 332 column 1 - Warning: <a> escaping malformed URI reference
La ou cela ce gate beaucoup c'est avec le validateur de code de Firefox, ou j'utilise validate local HTML et ou j'obtiens avec xhtml strickt 1.0:

# Line 329, character 17:

<a href="http://<?php echo$url;?>"><?php print($ligne["intad ...
^

Warning: character < is the first character of a delimiter but occurred as data
# Line 332, character 17:

<a href="mailto:<?php echo $email;?>"><?php print($ligne["em ...
^

Warning: character < is the first character of a delimiter but occurred as data
Voila est-ce qu'il y a vraiment quelque chose a faire?

Pour la suggestion rajouter un titre a la balise <a>, je comprend pas ce que tu veux dire. J'ai regarde chez W3 school et la balise ne supporte pas titre et quand j'essaie comme cela (tres naif je sais merci), je n'obtiens pas d'effet.

Code : Tout sélectionner

<td class = "b"> <a href="http://<?php echo$url;?>" title= voila_1><?php print($ligne["intadresse"]);?></a> </td>
Quelle est l'idee la

D'avance merci
Marc_3

Mammouth du PHP | 19672 Messages

09 août 2005, 11:52

J'ai l'impression que le problème vient de l'extension de ta page: si ele est en .html, le PHP ne sera pas interprété et envoyé tel quel dans ton code, donc les adresses ne seront pas affichées et le code PHP ne pourra pas être validé en (x)html
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

09 août 2005, 17:17

Toutes les pages sont sauvees ici en quelque_chose.php

Marc_3

moirf
Invité n'ayant pas de compte PHPfrance

24 déc. 2005, 18:49

Euh je vois un espace d'ici entre le http:// et la valeur injectée PHP.

Peut-être à cause de cela.

Et ça:
<?php
?> </td>
Tu peux juste mettre </td>, inutile de rouvrir une balise <?php si c'est pour la fermer directement.

Au passage on dit adéquate.

Et au final, ceci est une solution simple, du moment que tu sécurise cette variable injectée par l'url...


Lpu8er