begin process at 2010 02 10 07:48:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Redirection langue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Redirection langue

mardi 26 février 2008 à 20:20:45 | Redirection langue

sofianemad

bonjour,

j'ai tout essayé et je n'arrive pas a faire quelque chose qui me semble simple malgres tout les codes qui tourne sur le net concernant les redirections par rapport a la langue du navigateur.

 j'ai une page php dans laquelle je veux integrer un script qui :

dans le cas ou le visiteur est français : ne fait aucune redirection et continu a lire le reste de la page.

dans le cas ou le visiteur est non francophone anglais, allemand ou tout origine possible il soir redirigé vers unu autre adresse.

merci de votre aide je sais que ça parait basic et que beaucoup de script de ce type tourne sur le net mais souvent dans l'idée que l'on a créer une page specialement pour la redirection la ce n'est pas le cas je veux absolument qu'il continu a developper le reste de la page.

Merci a vous !
mardi 26 février 2008 à 20:47:46 | Re : Redirection langue

nicomilville

Membre Club
Réponse acceptée !
Salut,

premièrement un petit morceau de code serai le bienvenue et deuxièmement il serai bien de donner un peu plus d'infos du genre : Comment sait on si le visiteur est français ou pas ?

Si t'a besoin d'aide, MP !!!

mardi 26 février 2008 à 21:00:06 | Re : Redirection langue

sofianemad

Réponse acceptée !
le premier code fonctionne mais il ne prend en compte qu'une langue du genre si tu es anglais je te redirige vers le site en version anglaise. j'ai essayer de le bidouiller mais rien a faire impossible de lui demander de faire une redirection pr toutes les langues hormis le français.

[code]<?php
  if (!isset($Langue)) {
    if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
      $Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      $Langue = strtolower(substr(chop($Langue[0]),0,2));
    } else {
      $Langue = "en"; // Langue par défaut, des fois que l'en-tête n'aie pas été initialisée
    }
  } else {
    $Langue="en";
  }
  
  if ($Langue=='en') {
header( "Location: http://www.moredancehall.com/en/");
exit();
}
?> [/code]

le deuxieme fonctionne mais le probleme c'est que je redirige vers la meme pages que le script du coup ça fait une boucle et il ne trouve pas.

[code]<?php

// récupère la variable langage si elle existe
if (eregi($HTTP_ACCEPT_LANGUAGE,"fr"))
// redirige vers la page
{header("location:index.php");}
// Sinon la varible n'existe pas et on redirige
else
{header("location:http://www.moredancehall.com/en/");}

?> [/code]
mardi 26 février 2008 à 21:14:55 | Re : Redirection langue

Evangun

Réponse acceptée !
Ho là là mais nicomilville, sérieux t'es toujours à côté de la plaque... tu n'aides pas les gens sur phpcs, c'est le contraire, alors je ne te le dis pas méchamment, mais tu devrais sérieusement songer à apprendre à programmer avant de donner des conseils, parce qu'ils ne servent à rien et tu fais perdre du temps à ceux qui te lisent. C'est pas la première fois qu'on te le dit en plus, mais après 200 messages postés ici, tu racontes toujours n'importe quoi, alors fais quelque chose. Il y a d'autres gens ici qui eux donneront les bonnes réponses.

sofianemad :
en haut de ta page tu mets (ou tu fais un include) :

$languages = array('en', 'fr')

if(!isset($_COOKIE['language']) or !in_array($_COOKIE['language'], $languages)){
        if(in_array(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2), $languages)){
            setcookie('language', strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)));
            $_COOKIE['language'] = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
        }
        else {
            setcookie('language', 'en');
            $_COOKIE['language'] = 'en';
        }
}

et dans tout le reste de ta page, tu utilises $_COOKIE['language'] à ta convenance pour traduire en anglais ou en français, ou rediriger avec. Si le mec est français, le cookie vaudra 'fr'. sinon et par défaut, ça vaudra 'en'.

Ce code n'est qu'un début, tu peux largement l'améliorer pour qu'il convienne à tes besoins.

à+
mardi 26 février 2008 à 22:10:54 | Re : Redirection langue

sofianemad

merci Evangun pr ta reponse qui est beaucoup plus concrete.

cela dit je ne vois pas vraiment comment utiliser ce code mon blog français se trouve à cette adresse http://www.moredancehall.com et le blog anglais a cette adresse http://www.moredancehall.com/en/.

est il possible tout simplement sans utiliser les cookies de faire une redirection de ce type qui fonctionne :

<?php

// récupère la variable langage si elle existe
if (eregi($HTTP_ACCEPT_LANGUAGE,"fr"))
// redirige vers la page
{header("location:index.php");}
// Sinon la varible n'existe pas et on redirige
else
{header("location:http://www.moredancehall.com/en/");}

?>

cela dit lorsque l'on est un visiteur français ça créé une boule et rend la page introuvable.
existe il une fonction que je peut placer dans ce code qui pourrait eviter cette boucle et le faire marcher convenablement ça serait beaucoup plus simple.
je sais que cette fonction existe mais comment l'utiliser alors la je n'en ai aucune idée ...

merci encore Evangun
mardi 26 février 2008 à 22:49:47 | Re : Redirection langue

Evangun

Non, je te conseille d'utiliser ce que j'ai mis. Déjà pour ne pas utiliser le eregi dont tu parles qui consomme des resources, et en plus pour ne pas recalculer la langue à chaque chargement de page.

Pourquoi n'utiliserais-tu pas ce que j'ai dit ? une difficulté ?


$languages = array('en', 'fr')

if(!isset($_COOKIE['language']) or !in_array($_COOKIE['language'], $languages)){
        if(in_array(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2), $languages)){
            setcookie('language', strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)));
            $_COOKIE['language'] = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
        }
        else {
            setcookie('language', 'en');
            $_COOKIE['language'] = 'en';
        }
}

if($_COOKIE['language'] == 'fr'){header ( site fr ) }
elseif($_COOKIE['language'] == 'en'){header ( site en ) }
mardi 26 février 2008 à 22:56:00 | Re : Redirection langue

Evangun

C'est vrai que l'utilisation des cookies n'est pas nécessairement utile dans ton cas... mais en général on ne fait qu'une seule page php qui affiche soit en anglais, soit en français, c'est pour ça que j'utilise des codes qui ressemblent à ça.
Mais bon, ça marchera dans ton cas, et autant le garder sous le coude pour le jour où tu en auras besoin.
à+
mardi 26 février 2008 à 23:47:34 | Re : Redirection langue

sofianemad

effectivement pour ce que tu dis une seul page php c'est le mieux pr afficher les deux mais ce code je veux l'utiliser pour un blog dotclear en faite et le meilleur moyen d'avoir une version anglaise et une française c'etait d'installer deux version avec deux base sql differente de maniere a ce que le contenu puisse differé, j'avoue c'est peut etre une methode de faineant mais ça me convient dans l'utilisation sinon le code que tu m'as fourni ne fonctionne pas en ajoutant les url.

il me met : Parse error: parse error, unexpected T_IF in /md/index.php on line 4

a++
mardi 26 février 2008 à 23:59:06 | Re : Redirection langue

Evangun

il manque un point-virgule à la première ligne :p


Cette discussion est classée dans : page, langue, redirection, cas, tourne


Répondre à ce message

Sujets en rapport avec ce message

problème de redirection [ par kwak ] Bonjour à tous,je me trouve depuis quelques temps déjà confronté à un problème de redirection. Ici le problème se pose pour rediriger l'utilisateur se redirection [ par jbardet ] bonjour,Je veux faire une redirection sur une autre page en fonction d'un booléen...J'ai fait:         (balise smarty qui annonce php) if ($plusieurs redirection [ par ouiouiteur ] comment rediriger une page vers :-soit une page sur mon serveur chez moi, si ma connexion est active-soit vers une page sur un hebergeur gratuit pour [php] Redirection [ par Trigun222 ] Salut,j'aimerais savoir comment modifier ce codeset_time_limit(0);sleep(3600);header("location: http://www.monsite.com/mapage.php/");?> pour que la pa Redirection timer... [ par MAsterC ] Salut à tous,je suis en train de faire une page en PHP et je voudrai mettre un redirection à l'aide d'un Timer..Exemple: Un redirection de site s'eff questionnaire avec vérification des réponses et redirection URL [ par lodie7 ] Je suis débutante en php et je dois créer un questionnaire pour des enfants, suivant si ils ont bien répondu ou non, ils sont redirigés vers une page récuperer une variable après redirection auto ? [ par etudianto ] Voilà, j'ai un formulaire par lequel je passe une valeur que je recupère sur une page par la méthode : Vous avez choisi : <?php echo $_POST["valeu probleme de redirection [ par ehmarc ] salutje doit effectuer une redirection en plein milieu de ma page, c'est à dire je valide mon formulaire et si le formulaire est valider je vais sur u Redirection sur une page [ par Kleidp ] Bonjour,j'aimerais avec php rediriger une page web, comment faire ? Redirection de page [ par oberown ] Comment faire une redirection de page ?Le problème avec header() on est obligé de l'utiliser tant qu'on a pas fait de html, or justement le problème j


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales