Site Multilingue Problème cookie

Marius -  
 Marius -
Bonjour,
Je suis en phase de test de mon site web multilingue en php.
En local tout semblait bien se passer. Mais une fois mis en ligne, j'obtient un message d'erreur "Warning: Cannot modify header information - headers already sent by (output started at /XXXX/XXXX/test/index.php:2) in /XXXX/XXXXX/www/test/decide-lang.php on line 21"

Le script de gestion des langue que j'ai utilisé est celui proposer par le site phpdebutant.org.
Le fichier en question est decide-lang.php:
<?php 
if(isset($HTTP_COOKIE_VARS['lang'])) {
$lang = $HTTP_COOKIE_VARS['lang'];
} else {
// si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
$lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2); 
}
 
//script d'origine
if ($lang=='fr') {           // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
include('lang/fr-lang.php'); 
} elseif ($lang=='en') {      // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
include('lang/en-lang.php'); 
} 
//fin du script d'origine

//définition de la durée du cookie (1 an)
$expire = 365*24*3600; 
	 
//enregistrement du cookie au nom de lang
setcookie("lang", $lang, time() + $expire); 
 
?>


La ligne 21 est setcookie("lang", $lang, time() + $expire);

Je sais que des sujets du même type ont déjà été posés. Mais j'ai essayer les différentes solutions proposées sans y arriver.
Cependant le changement de langue fonctionne, je pense que c'est la partie concernant les cookies qui pose problème.

Merci d'avance pour votre aide

A voir également:

1 réponse

Marius
 
Je rectifie mon code. Il s'agit de
<?php 
  
 if(isset($HTTP_COOKIE_VARS['lang'])) {
      $lang = $HTTP_COOKIE_VARS['lang'];
 } else {
      // si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
	     $lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2); 
  	 }
  	 
 	 //script d'origine
 
if ($_GET['lang']=='fr') {           // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
 include('lang/fr-lang.php');
  } 
  
 else if ($_GET['lang']=='en') {      // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
 include('lang/en-lang.php');
  }
 	 
 	 else {                       // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut
 	 include('lang/fr-lang.php');
 	 }
 	 

  	 //fin du script d'origine
  	 
 	 //définition de la durée du cookie (1 an)
 	 $expire = 365*24*3600; 
 	 
  //enregistrement du cookie au nom de lang
 setcookie("lang", $lang, time() + $expire); 
 	 
?>


Désolé, j'avais posté le mauvais script...
J'espère que vous pourrez m'aider car je suis toujours coincé.
0