|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 12 ![]() |
Bonjour,
Je développe un site en français et en anglais, et je voudrais que lorsque l'on clique sur le drapeau anglais qui se trouve en haut de page sur une page en français qu'il m'envoi vers la version anglaise de cette même page, et que si une page au même nom n'existe pas, il renvoi sur l'index de la version anglaise (et vise versa). Je vais donner un exemple. L'utilisateur est sur la page www.monsite.com/fr/fiches/infos.php et clique sur le drapeau qui s'y trouve, si www.monsite.com/en/fiches/infos.php existe, c'est la que le liens va le rediriger, si il n'éxiste pas l'utilisateur sera redirigé vers www.monsite.com/en/. Je ne suis pas super doué en php. J'ai quelque idées mais je ne saurais pas comment procéder. J'essai de développer mon petit script sur la version française, il me suffira de le copier sur la version anglaise en inversant fr et en dans le code. Pour info mon drapeau anglais est dans un include qui est appelé dans toutes les pages française du site (pareil à l'inverse sur la version anglaise). Je me disais que je pourrais commencer par récupérer l'adresse actuelle de la façon suivzante : Code :
$current_adress = '../' . basename($_SERVER["PHP_SELF"]); Après je ne sais pas comment faire pour qu'il me prenne la valeur de $current_adress, qu'il remplace le /fr/ par un /en/, et la mette dans une variable du nom de $target_adress. Ensuite je pense qu'une boucle permettrai de finir ma fonction : Code :
Est ce que quelqu'un saurais m'aider sur mon problème ? Merci d'avance |
||
|
|
00
|
|
|
#2 | ||||
|
Membre régulier
![]() |
Salut, je vois ton problème, je crois que tu peux faire comme cela (cela fonctionnera sur toutes les pages du site dans chaque dossier) :
Code :
C'est un peu compliquer pour si peu, tu devrais faire un peu comme les templates avec un seul fichier pour les deux langues et un paramètre en GET comme : mapage.php?lang=fr puis dans ta page tu fais : Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() |
On ne met jamais de variables dans un include(), include_once(), require() ou require_once() et ce pour une des failles de sécurité les plus connues si ce n'est LA plus connue.
Cependant la solution proposée est bonne dans l'idée excepter le fait qu'il faille changer les variables par des constantes. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Inscription : janvier 2005 Messages : 2 572 ![]() |
![]() Voici quelques idées pour les sites multilingues : http://php.developpez.com/faq/?page=...te-multilingue Pour ce qui est de ton adresse, il vaut mieux utiliser un paramètre en effet, c'est plus simple. Sinon si ton souci c'est juste d'avoir une URL avec un dossier en ou fr juste après la racine, tu peux faire de la réécriture de liens (mais c'est plus compliqué).
__________________
Pensez au tag ![]() Les règles du Forum Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5 SQL : Cours SQL |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() |
Bien sur que ma solution est bonne tel quel tu as oublié de ceci :
Code :
|
||
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 12 ![]() |
Merci Oprichnik, j'ai repris ton code et je l'ai quelque peut modifié (à cause de variables qui changaient de nom et pour que sa se rapproche de ce que je voulais). Je te remercie énormément car je n'aurais pas su coder sa.
Par contre je ne sais, si le code final a des failles de sécurité : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com