5568 sujets

Sémantique web et HTML

Bonsoir. Heureux de participer pour la 1e x à ce forum. Qqn pourrait-il m'aider en répondant à la question suivante ? Merci d'avance. JoVD.

Comment rendre le code suivant (réduit à sa plus simple expression) compatible W3C strict en évitant l'apparition automatique du message intempestif dans le champ UserName ?

- Ligne 15 active: 'value="<' -> Non compatible W3C (3 Errors, 1 warning(s)) mais champ propre (vide). ('Line 19, Column 60: character "<" is the first character of a delimiter but occurred as data.')
- Ligne 16 active: 'value="&lt;' -> Compatible W3C mais message intempestif '<?php print $_POST['UserName'];?>' DANS champ UserName.


<?PHP
	if(!isset($_POST['UserName'])) $_POST['UserName']="";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>Sample01</title>
	</head>
	<body>
		<form action="Sample01.php" method="post">
			<p>
				<label>Username :</label>
				<input type="text" id="UserName" name="UserName" value="<?php print $_POST['UserName'];?>" />
				<!-- <input type="text" id="UserName" name="UserName" value="&lt;?php print $_POST['UserName'];?&gt;" /> -->
			</p>
			<p><input type="submit" value="Submit" /></p>
		</form>
	</body>
</html> 

Modifié par JoVD (29 Jan 2009 - 23:04)
Bonjour,

C'est le code HTML (destiné aux clients, c'est à dire aux navigateurs web) que l'on valide. Pas le code PHP, destiné au serveur web et normalement invisible pour le navigateur.

En passant: bien que «username» soit un néologisme informatique courant, en anglais on dit normalement «user name». Smiley cligne
Modifié par Florent V. (28 Jan 2009 - 22:13)
JoVD a écrit :
(Je considère donc ce code comme tout de même valide W3C avec '<').

Teste le code HTML généré par ton PHP (donc celui reçu par le navigateur), et tu sauras. C'est facile: avec la barre d'outils Web Developer (de Chris Pederick, pour Firefox), il suffit d'utiliser l'option «Outils > Valider le HTML local».
Bonjour,

Apparemment si la ligne d'erreur est Ligne 15 active: 'value="[b]<' -> Non compatible[/i] c'est que le PHP n'est pas interprete.

Hypothese confirmee par ceci :
'<?php print $_POST['UserName'];?>' DANS champ UserName.


Ce n'est pas du cote du montage HTML que tu dois chercher JoVD mais du cote du code php.

Questions :
- est-ce que tu utilises un CMS ?
- as-tu verifie que l'extension de ton fichier est bien .php et non .html ?
- testes-tu en local ?

A bientot
Bonsoir Florent et K-feine,

Je nutilise pas de système de gestion de contenu (SGC ou CMS), K-feine, mais je teste mon fichier sample01.php localement via l'excellent éditeur de source GNU gratuit Notepad++ qui peut entre autres 'Submit to W3C HTML validator' et qui m'a rendu les erreurs '3 Errors, 1 warning(s)' et 'Line 19, Column 60: character "<" is the first character of a delimiter but occurred as data.' mentionnées initialement. J'utilise aussi EasyPHP 2.0.0.0 (appelant IE 7.0 par défaut).

Ce sont assez évidemment ces mêmes erreurs qui me sont signalées en cas de test local via barre d'outil de Chris Pederick (Sample01.php > Open With > Firefox > (Outils > Web Developer >) Tools > Validate Local HTML Ctr+Maj+A), Florent, mais Firefox m'affichant mon code source plutôt que mon formulaire, je ne crois pas tester ainsi le code HTML généré par mon PHP. Le code PHP de cette ligne ne me semble en effet pas interprété.

Merci pour votre aide.
Il faut que tu accède à tes fichiers php par http://localhost/sample.php (si ton fichier sample.php se trouve dans le www/ d'EasyPHP bien sur, sinon tu accorde le répertoire en fonction).
Ainsi le code PHP sera interprété et c'est le rendu final que tu dois valider. Il est inutile de faire valider du code PHP au validateur HTML.
Notepad++ a beau te proposer l'option, elle ne doit être utilisée que pour des fichiers HTML.
Merci pour votre aide, Florent, K-feine et Tymlis.

Le code source que je soumets au validateur HTML W3C APRES interprétation du code PHP via mon web local (EasyPHP) (value="aaa" ou value="" et non plus value="<?php print ...) est en effet impeccable.

En ce qui concerne la barre d'outils Web Developer de Firefox de Chris Pederick, j'avais erronément compris que l'option «Outils > Valider le HTML local» se chargeait d'interpréter le code PHP.

En ce qui me concerne, la question peut être clôturée. Merci encore.