5568 sujets

Sémantique web et HTML

Bonjour,

Voila je ne comprend pas le problème que je rencontre. Je développe un nouveau site qui est hébergé chez Oléane à cette url : http://www.gitesdethouy.com/futur2 et dont la validation w3c est OK. Le même site hébergé chez 1and1 à cette url http://www.gitesdethouy.fr. La différence entre les deux sites est minimes et je ne comprend pas le pourquoi de la non validation de gitesdethouy.fr

Par avance merci à vous pour votre aide
Yep je vois bien que j'ai une erreur. Mais je ne comprend pas pourquoi cette erreur est là et comment la corriger. D'où la raison de mon post sur le forum... Smiley langue



Dans tous les cas Bonne Année 2008 à tous Smiley ravi
Bonjour,

Comme le dit Country, ça n'est pas une erreur HTML mais bien une erreur PHP qui génère un code HTML invalide.

L'erreur retournée est la suivante:
a écrit :
Warning: include(Languages/Lang_LANGUAGE/lang_main.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /homepages/42/d227390883/htdocs/Thouy/includes/base_Inc.php on line 84

Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'Languages/Lang_LANGUAGE/lang_main.php' for inclusion (include_path='.:/usr/local/lib/php5') in /homepages/42/d227390883/htdocs/Thouy/includes/base_Inc.php on line 84


Bref, il faut corriger le problème (la fonction include qui ne trouve pas le fichier que tu indiques, à la ligne 84 dans le script /Thouy/includes/base_Inc.php).

On ne peut pas t'en dire bien plus...
Mea Culpa pour Country. J'ai lu un peu trop vite son post et merci à Florent V de me mettre le nez en plein sur l'erreur. Ca m'apprendra à ne pas savoir ouvrir les yeux suffisament. Smiley sweatdrop

Le script que j'utilises dans bases_Inc.php est un script que j'ai récupéré pour gérer la gestion des langues en dynamique. Si je comprend bien, il ne trouve pas le fichier. Je me suis dit que je me suis planté sur comment définir l'adresse pour accéder au fichier. (Vu que j'ai changé d'hébergeur, les adresses diffèrent ...)

Je suis allé faire un tour chez 1&1 et j'ai recopié l'adresse qu'ils me donnent
a écrit :
/homepages/42/d227390883/htdocs/Thouy/


J'ai testé mes variables et tout me semble OK. L'erreur a changé, mais elle est toujours là. Et je ne vois pas où je me plante.

a écrit :
Warning : include(/homepages/42/d227390883/htdocs/Thouy/Languages/Lang_LANGUAGE/lang_main.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /homepages/42/d227390883/htdocs/Thouy/includes/base_Inc.php on line 83

Warning : include() [<a href='function.include'>function.include</a>]: Failed opening '/homepages/42/d227390883/htdocs/Thouy/Languages/Lang_LANGUAGE/lang_main.php' for inclusion (include_path='.:/usr/local/lib/php5') in <b>/homepages/42/d227390883/htdocs/Thouy/includes/base_Inc.php on line <b>83


Surtout que LANGUAGE qui est une variable, quand je la teste me retourne la bonne valeur. Alors que via le validateur, elle n'est pas traduite et ça je ne comprend pas pourquoi. Surtout que si je teste le changement de langue sur le site ça fonctionne nickel
Bonjour,

Au cas où cela aurait un rapport avec la chose: le validateur n'envoie pas d'en-tête HTTP indiquant sa préférence de langue.

Sinon, la page http://www.gitesdethouy.fr./ est effectivement invalide, mais pour d'autres raisons (présence d'un caractère à l'encodage incorrect, syntaxe XHTML dans du HTML).
Modifié par Laurent Denis (02 Jan 2008 - 09:38)
Laurent, pourrais-tu être un peu plus explicite stp car je ne comprend pas très bien ce que tu veux dire.
Sorry.

Si ton script récupère une valeur de préférence de langue envoyée par le navigateur et l'exploite pour la génération du contenu, ce sera inopérant quand l'UA est le validateur du W3C, qui n'envoie pas cet en-tête HTTP. Si le script ne prévoit pas de valeur par défaut pour couvrir ce cas de figure, tu obtiens ton erreur PHP.

(Ce n'est qu'une hypothèse, j'ignore si ton script sert bien à cela)
Modifié par Laurent Denis (02 Jan 2008 - 11:26)
Euh si le script edispose d'une fonction qui implémente par défaut la langue en fonction de quelle est la langue par défaut du navigateur. Si tu veux je peux mettre le code de la page base_Inc.php. C'est un script sous licence LGPL que j'ai récupéré.

Par contre je m'étonne de ce que tu dis. Comment se fait que dans le cas de www.gitesdethouy.fr le validateur soit incapable de traduire cette page, alors que pour le site www.gitesdethouy.com/futur2 je n'ai pas de soucis. J'aimerai juste comprendre.
<?
/******************************************************************************/
/* UBG-BUL - - Union Belge des Géom&#269;tres - Belgische Unie van Landmeters      */ 
/* (c) UBG-BUL -- Tous droits réservés                                        */
/******************************************************************************/
/* Conception et programation par Jacques Houbart                             */
/******************************************************************************/
/* Ce Script est sous licence LGPL, ni plus, ni moins                         */
/******************************************************************************/

// Définir ici l'adresse de base de votre site le serveur
//define('HTML_ROOT_PATH',"/var/www/html/");    doit se termine par /
define('HTML_ROOT_PATH',"/homepages/42/d227390883/htdocs/Thouy/");    

// Définir ici les langues disponibles sur votre site
$Lang_List=array("FR","EN");  

/*
les fichiers langues devront &#281;tre placé dans les répertoires 
  /Languages/Lang_FR/ pour le francais, 
  /Languages/Lang_EN/ pour l'anglais, 
  ...
*/



//****************************************************************************
// Détermination de la langue de l'utilisateur en fonction de sa configuration
//****************************************************************************

if (isset($_GET['Language'])&&(@in_array($_GET['Language'],$Lang_List)))
   {
     define('LANGUAGE', $_GET['Language']);
   }
elseif (isset($_SESSION["UserLanguage"]))
   {
      define('LANGUAGE', $_SESSION["UserLanguage"]);
   }
 

else
   { 
     $Accept_Lang=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);  
     reset($Accept_Lang);
     while ( list($Index,$Language)=@each($Accept_Lang))
	 {
  	  if (eregi( "^(.+);q=([0-9.]*)$", $Language , $Part))
           {
             $Accept_Lang[$Index]=$Part[2] . ';'.strtoupper($Part[1]);
    	     }
  	  else
 	     {
	       $Accept_Lang[$Index]='1.0;'.strtoupper($Accept_Lang[$Index]);
	     }
	 }
	arsort($Accept_Lang); //tri par ordre de préférence
	reset($Accept_Lang);
	while (list(,$ALang)=@each($Accept_Lang) )
	  {
	    reset($Lang_List);
	    while ( list(, $Language) = @each($Lang_List) )
	    {
		if (strpos($ALang,$Language)!=0)
		{
               define('LANGUAGE', $Language);
		  break 2;	
		 }
	 }
	}
    unset($Accept_Lang, $ALang,$Language);
 }


$_SESSION["UserLanguage"]=LANGUAGE;
define('HTML_LANG_PATH',HTML_ROOT_PATH . 'Languages/Lang_'. LANGUAGE .'/'); 
//****************************************************************************
//echo "html_lang_patch= ".HTML_LANG_PATH."<br/> html_root_path= ".HTML_ROOT_PATH."<br/> Language= ".LANGUAGE;
/* 
Voilà, à partir d'ici, la langue du site est définie
Pour charger un fichier propre &#341; une langue, utiliser
*/

include(HTML_LANG_PATH."lang_main.php");
//echo "<br/>html_lang_patch= ".HTML_LANG_PATH."lang_main.php";
?>


Voici le code que j'utilise sur la page. Je ne me sens pas assez pro pour aller le bidouiller vu que surtout il fonctionne. Si une âme experte a une idée je suis preneur. Sinon je sens que la validation W3C va passer outre.