La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  redirection par cookie + php
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: redirection par cookie + php  (Lu 1303 fois)
redirection par cookie + php
« sur: le 10-10-2004 a 17:48:01 »
lab_siteweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 21



Je suis un lama!

Voir le Profil
Répondre avec citation

Bonjour à tous,
je fais un site multilingue, et j'aimerais pouvoir enregistrer le choix de la langue dans un cookie. Il me faudrait un code qui fasse ça (inclus dans index.php)

-Si cookie=fr -> redirection page fr
-Si cookie=de -> redirection page allemand
-Si cookie=en -> "continuer le script"
-Régler cookie à "en"

J'ai trouvé un script qui faisait plus ou moins ça ici: (http://www.orgalinux.com/article.php3?id_article=77&artsuite=2)
mais il ne marche pas chez moi. 

J'ai également vu ce topic (http://www.forum-webmaster.com/index.php/forum-communaute-entraide/technique-programmation/php-mysql-apache/t1380-15.html) ,
mais comme j'ai commencer le php très récemment (avant-hier  ), je suis pour le moment incapable de faire un synthèse des scripts que je trouve

Rapporter au modérateur  

Re:redirection par cookie + php
« Répondre #1 sur: le 10-10-2004 a 17:57:55 »
MFred
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 340



Gnih ?
331567679 331567679
Voir le Profil    E-Mail
Répondre avec citation

Salut,

<?php

if ($_COOKIE['lang']=='fr') {
header ("Location: http://www.tonsite.com/fr/");
} elseif ($_COOKIE['lang']=='de') {
header ("Location: http://www.tonsite.com/de/");
} else {
setcookie ('lang','en');
}

?>

Rapporter au modérateur  

"In a world without fences and walls, who needs Gates and Windows ?"


Jabber : mfred@jabber.fr / mfred.mail@gmail.com
Re:redirection par cookie + php
« Répondre #2 sur: le 11-10-2004 a 12:55:35 »
lab_siteweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 21



Je suis un lama!

Voir le Profil
Répondre avec citation

Salut et merci pour le code 
les cookies s'enregistre correctement, pourtant la première fois que je charge la page avec le script ci-dessus,
le naviguateur m'envoie ce message d'erreur mais affiche la page correctement en dessous:
Code:

Notice: Undefined index: lang in c:\program files\easyphp1-7\www\cookies\index.php on line 3

Notice: Undefined index: lang in c:\program files\easyphp1-7\www\cookies\index.php on line 5

apparement, ce sont ces deux lignes qui posent problème:


  • if ($_COOKIE['lang']=='fr') {
  • } elseif ($_COOKIE['lang']=='de') {


Est-ce que quelqu'un voit d'ou peu venir le problème?

PS. En PHP, quelle est la différence entre les 'gillemets simples' et les "guillemets doubles" ?

Rapporter au modérateur  
Re:redirection par cookie + php
« Répondre #3 sur: le 11-10-2004 a 19:12:24 »
MFred
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 340



Gnih ?
331567679 331567679
Voir le Profil    E-Mail
Répondre avec citation

Désolé je te le refais 

<?php

if (isSet($_COOKIE['lang']) && $_COOKIE['lang']=='fr') {
header ("Location: http://www.tonsite.com/fr/");
} elseif (isSet($_COOKIE['lang']) && $_COOKIE['lang']=='de') {
header ("Location: http://www.tonsite.com/de/");
} else {
setcookie ('lang','en');
}

?>

Bonne chance !

Rapporter au modérateur  

"In a world without fences and walls, who needs Gates and Windows ?"


Jabber : mfred@jabber.fr / mfred.mail@gmail.com
Re:redirection par cookie + php
« Répondre #4 sur: le 11-10-2004 a 20:54:24 »
bigornot
Superactif
****

Hors-Ligne

Sexe: Male
Messages: 579



Je suis un fantôme!

Voir le Profil
Répondre avec citation

Citation de: lab_siteweb le le 11-10-2004 a 12:55:35
PS. En PHP, quelle est la différence entre les 'gillemets simples' et les "guillemets doubles" ?

le 2e ' 
et plus sérieusement : php ne les interprete pas pareil ... donc tu peux faire : echo ' <input type="nimportequoi">'; sans que php croie que le " est le 2e ' ...

Rapporter au modérateur  

Des bijoux et des gros!
Re:redirection par cookie + php
« Répondre #5 sur: le 11-10-2004 a 21:57:59 »
lab_siteweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 21



Je suis un lama!

Voir le Profil
Répondre avec citation

Merci, cette fois ça marche même lors du 1er chargement! 

Je dois encore améliorer quelque chose (désolé de vous prendre du temps, j'essaie de faire le plus par moi-même avec les tutos, mais il y a des points où je ne comprends pas le non-fonctionnement ):

  • lorsque je vais sur la page en français (qui se trouve à www.monsite.com/fr), le cookie est réglé à "fr".
  • lorsque je veux retourner sur la page anglais (qui se trouve à www.monsite.com), je suis renvoyé directement à www.monsite.com/fr, ce qui est le but du cookie. Donc impossible de retourner à la page Anglais
  • j'ai pensé à définir une variable [lang] (à ne pas confondre avec le cookie[lang]), qui est définie à "en" lorsqu'on clique sur le lien allant de la page français à la page anglais

Cependant, ça ne marche pas, voilà mon essai:
Code:

<?php
// $lang = "en";
if (isSet($lang) && $lang=='en')
{
setcookie ('lang','en');
}
?>
Quand j'essai de définir ma variable "lang" dans le lien de la page Français href="../index.php?lang=en", ça ne marche pas. Par contre, si je met $lang = "en" au début de mon code (sur la page Anglais), tout fonctionne. Le problème doit venir de l'url... quelle est mon erreur

PS. merci de ta réponse bigornot 

« Dernière Édition: le 11-10-2004 a 21:59:23 par lab_siteweb » Rapporter au modérateur  
Re:redirection par cookie + php
« Répondre #6 sur: le 11-10-2004 a 22:04:40 »
erwinol
Iznogoud Deluxe
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1845



Que la FARCE soit avec toi

Voir le Profil    WWW
Répondre avec citation

test ce petit bout de code pour te rendre compte par toi-même :

Code:

<?php
   
$maVariable = "Voici une chaine";
echo "Avec des \" : $maVariable";
echo 'Avec des \' : $maVariable';

?>


Bon je résiste pas à l'envie de t'en donner le résultat : dans le premier cas, la variable sera interpretée, il mettra donc "Voici une chaine" alors que dans le 2ème cas, il affichera $maVariable.

C'est une propriété héritée de PERL.

Rapporter au modérateur  

MySeoBox soumet vos sites sur des milliers d'annuaire
Vous possédez un annuaire ? Gagnez de l'argent avec celui-ci grâce à l'affiliation MySeoBox !
Re:redirection par cookie + php
« Répondre #7 sur: le 11-10-2004 a 22:47:03 »
MFred
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 340



Gnih ?
331567679 331567679
Voir le Profil    E-Mail
Répondre avec citation

Et je te dirais ... heuresement que ca ne marche pas ...
L'option "register_globals" doit être sur OFF (voir phpinfo() de ton hébergeur), aussi faut-il utiliser $_GET['nomdemavariable'] pour récupérer les variables transmises via URL ...
> voir ce lien.

Remplace donc ton code par :
<?php
if (isSet($_GET['lang']) && $_GET['lang']=='en')
{
setcookie ('lang','en');
}
?>

Et pour finir sur les "..." et '...' voici un peu de lecture 
> http://frederic.bouchery.free.fr/?2004/08/10/9-EchoLapinOuTortue

Rapporter au modérateur  

"In a world without fences and walls, who needs Gates and Windows ?"


Jabber : mfred@jabber.fr / mfred.mail@gmail.com
Re:redirection par cookie + php
« Répondre #8 sur: le 12-10-2004 a 09:43:55 »
lab_siteweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 21



Je suis un lama!

Voir le Profil
Répondre avec citation

Merci à tous, vous m'avez fait bien avancé

Voici le code de la page Anglais (qui fonctionne )
Code:

<?php
if (isSet($_GET['lang']) && $_GET['lang']=='en')
//1)
{
setcookie ('lang','en');
//2)
}
else {
   if (isSet($_COOKIE['lang']) && $_COOKIE['lang']=='fr') {
   header ("Location: fr_index.php");}
   elseif (isSet($_COOKIE['lang']) && $_COOKIE['lang']=='de') {
   header ("Location: de_index.php");}
   else {
      if (isSet($_COOKIE['lang']) && $_COOKIE['lang']!='en') {
      setcookie ('lang','en');}
      }
   }
?>
Je me doute bien qu'il n'est pas forcément écrit dans les règles de l'art, avec tous ces "if" qui s'empilent, alors n'hésitez pas à faire des commentaires

J'aimerais encore améliorer quelque chose: comment efface-t-on le &lang=en de l'url (www.monsite.com/index.php?lang=en)?, j'ai essayer ça
Code:
if (isSet($_GET['lang'] && $_GET['lang']=='en') { unset($_GET['lang'] );};
et devinez quoi? Ca ne marche pas   

J'aimerais placer ce code à l'endroit 2) dans la page Anglais, afin que le cookie ne se réécrive pas à chaque chargement de la page.

Une autre solution serait d'ajouter
Code:
if (isSet($_COOKIE['lang']) && $_COOKIE['lang']!='en')
à l'endroit 1), mais je préfère effacer la variable dans l'url.
Où ske je me suis de nouveau planté

Rapporter au modérateur  
Re:redirection par cookie + php
« Répondre #9 sur: le 13-10-2004 a 21:44:56 »
erwinol
Iznogoud Deluxe
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1845



Que la FARCE soit avec toi

Voir le Profil    WWW
Répondre avec citation

Pour la gestion d'un site multilingue, tu as également cette méthode :

http://www.phpdebutant.org/article107.php

Je l'ai testée pour un client il y a quelques années et ça marchait nickel ! Cela dit, il y avait un problème dù au fait que les textes sont stockés dans des variables dans des fichiers langues : impossible de permettre à celui qui s'occupera de la maintenance de modifier les textes ... à moins qu'il veuille éditer les fichiers pour modifier le contenu des variables en faisant gaffe aux échappemements de caractères.

Rapporter au modérateur  

MySeoBox soumet vos sites sur des milliers d'annuaire
Vous possédez un annuaire ? Gagnez de l'argent avec celui-ci grâce à l'affiliation MySeoBox !
Re:redirection par cookie + php
« Répondre #10 sur: le 14-10-2004 a 16:10:40 »
lab_siteweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 21



Je suis un lama!

Voir le Profil
Répondre avec citation

Merci pour le lien
J'utilise aussi include, mais en appelant des fichiers au lieu de variables. Je pense que les deux solutions doivent se valoir 

Rapporter au modérateur  
Re:redirection par cookie + php
« Répondre #11 sur: le 14-10-2004 a 21:33:32 »
erwinol
Iznogoud Deluxe
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1845



Que la FARCE soit avec toi

Voir le Profil    WWW
Répondre avec citation

Avec des fichiers, tu peux faire une petite interface en ligne avec un éditeur WYSIWYG pour que le client puisse modifier lui-même le contenu du site.

Avec le système de variables ça devient très compliqué.

Rapporter au modérateur  

MySeoBox soumet vos sites sur des milliers d'annuaire
Vous possédez un annuaire ? Gagnez de l'argent avec celui-ci grâce à l'affiliation MySeoBox !
Re:redirection par cookie + php
« Répondre #12 sur: le 15-10-2004 a 11:37:18 »
lab_siteweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 21



Je suis un lama!

Voir le Profil
Répondre avec citation

J'ai utiliser les constantes pour la page des produits, c'est super efficace dans ce cas là: pas besoins de modifier séparément la page dans toutes les langues. (A moins de faire un site complètement dynamique)

Pour les pages qui changent moins souvent, il vaut mieux utiliser des fichiers séparés, comme tu dis 

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg