Problème de redirection selon la langue

Stef -  
Vestarija Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je fais mon premier site internet et autant dire qu'il me reste encore bcp à apprendre.
Je souhaite JUSTE rediriger le visiteur selon la langue de son navigateur et ici en loccurence russe. Ci-dessous le code que j'ai tapé tout en haut de ma page index.php:

<?php
if (!isset($langue_user) && !isset($_SESSION["ch_langue"])){
$langue_user=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
switch($langue_user){
case"fr":
$_SESSION["ch_langue"] = "fr";
break;

case "ru":
$_SESSION["ch_langue"] = "ru";
header ("Location: /ru/index2.php");
break;
}
}
?>

Théoriquement cela devrait fonctionner. Sur un navigateur en FR no problème en revanche avec firefox en russe ça passe pas! je tombe sur la page fr et tout en haut de mon site voici le code d'erreur:

Warning: Cannot modify header information - header already sent by (output started at /home/miste653/public_html/index.php:1) in /home/miste653/public_html/index.php on line 11

Voilà je suis noob (d'ailleurs c'est pas la première fois que je viens sur ce super site)

Mercii ààà vouss!!


Stef



A voir également:

2 réponses

Utilisateur anonyme
 
Bonjour,

Le message d'erreur indique que vous avez déjà envoyé les headers puis du contenu de page avant l'instruction header.

Le protocole HTTP envoie toujours la partie HEAD avant la partie body.

En PHP, la partie HEAD est envoyée par l'instruction header

La partie BODY par un echo, ou un print, ou du code HTML avant le code PHP.

Si vous avez une instruction header dans le code, il ne faut pas, avant l'exécution de cette instruction, avoir envoyé du contenu HTML, genre un echo, print, voire juste un retour chariot avant <?php

Votre pb doit venir de là.

Et puis mettez un exit; juste après un header('location...
Ca évite de mauvaise surprises.
0
Vestarija Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
Merci néo, je viens de vous répondre par MP.
0