Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1516 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  changement de langue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changement de langue

n°871178
kameha
Posté le 12-10-2004 à 10:55:39  profilanswer
 

Salut,
j'ai ce code sur l'un des drapeaux de mon site:

<a href="<?=$PHP_SELF?>?page=<?php echo "$page"; ?>&mep=<?php echo "$mep"; ?>&lang=fr">


 
Ca fonctionne sauf pour les pages où il existe d'autres variable dans l'url.
Si par exemple, il y a ça "&id=CHA-4" derriere, au moment du changement de langue, il ouvre une page vide car ce dernier bout de variable ne passe pas.  
Comment est ce que je peux lui dire : prends tout ce qu'il y a dans l'url + &lang=fr ?
merci

mood
Publicité
Posté le 12-10-2004 à 10:55:39  profilanswer
 

n°871182
Sebastien
Posté le 12-10-2004 à 11:00:15  profilanswer
 

si je dis pas de betise c'est la variable
$_SERVER['argv']

n°871184
Profil sup​primé
Posté le 12-10-2004 à 11:01:07  answer
 

Code :
  1. foreach($_GET as $key=>value) {
  2.           $get.=&$key=$value;
  3. }


 
echo "<a href=\"".$_SERVER["PHP_SELF"]."?lang=fr$get\">";
 
essaye de faire un controle sur tes get quand meme

n°871197
kameha
Posté le 12-10-2004 à 11:07:38  profilanswer
 

jvais tester ça merci.
 
Pourquoi controler mes get?

n°871225
kameha
Posté le 12-10-2004 à 11:27:48  profilanswer
 

j'ai fais une bourde

   <?php  
    foreach($_GET as $key=>value) {  
                $get.=&$key=$value;  
    }
    echo "<td>";
    echo "<a href=\"".$_SERVER["PHP_SELF"]."?lang=fr$get\">";  
    echo "<img src=\"img/frames/dp-fr-a.gif\" alt=\"Fran&ccedil;ais\"></a></td>";
    ?>

?


Message édité par kameha le 12-10-2004 à 11:28:05
n°871230
Profil sup​primé
Posté le 12-10-2004 à 11:31:28  answer
 

ché pa moi, test

n°871238
Sebastien
Posté le 12-10-2004 à 11:36:03  profilanswer
 

ca serait pas plutot  
$get .= "&$key=$value";

n°871239
kameha
Posté le 12-10-2004 à 11:36:15  profilanswer
 

bah rien ne s'affiche.
Si je vire foreach, ça s'affiche mais le lien ne link pas grand chose evidemment


Message édité par kameha le 12-10-2004 à 11:37:07
n°871241
Profil sup​primé
Posté le 12-10-2004 à 11:37:49  answer
 

Sebastien a écrit :

ca serait pas plutot  
$get .= "&$key=$value";

c'etait un piege [:popok]

n°871242
kameha
Posté le 12-10-2004 à 11:38:22  profilanswer
 

Sebastien a écrit :

ca serait pas plutot  
$get .= "&$key=$value";


 
meme probleme
la page n'affiche rien

mood
Publicité
Posté le 12-10-2004 à 11:38:22  profilanswer
 

n°871243
Sebastien
Posté le 12-10-2004 à 11:38:51  profilanswer
 

n'empeche que tu t'emmerderais bcp moins avec  
$_SERVER['argv'][0]

n°871245
kameha
Posté le 12-10-2004 à 11:40:45  profilanswer
 

je veux bien tester mais j'ai vraiment un pb avec ce foreach qui m'affiche une page vide online.

n°871255
kameha
Posté le 12-10-2004 à 11:47:06  profilanswer
 

   <?php  
    foreach($_GET as $key=>value) {  
                $get .= "&$key=$value";  
    }
    echo "<td>";
    echo "<a href=\"".$_SERVER['argv'][0]."?lang=fr$get\">";  
    echo "<img src=\"img/frames/dp-fr-a.gif\" alt=\"Fran&ccedil;ais\"></a></td>";
    ?>


 
 = les variables ne passent pas


Message édité par kameha le 12-10-2004 à 11:47:38
n°871257
Profil sup​primé
Posté le 12-10-2004 à 11:47:35  answer
 

echo $get donne quoi?

n°871260
kameha
Posté le 12-10-2004 à 11:48:44  profilanswer
 

Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in /home/www/include/en/frames/header.php on line 34


Message édité par kameha le 12-10-2004 à 11:48:58
n°871268
Sebastien
Posté le 12-10-2004 à 11:51:04  profilanswer
 

foreach($_GET as $key=>$value) {  

n°871271
Sebastien
Posté le 12-10-2004 à 11:52:26  profilanswer
 

et mon $_SERVER['argv'][0] c'est la meme chose que ton $get en plus 'propre' on va dire.


Message édité par Sebastien le 12-10-2004 à 11:52:45
n°871274
Profil sup​primé
Posté le 12-10-2004 à 11:52:55  answer
 

oué j'ai vu ca apres, mais il l'a corrigé de lui meme apparement

n°871275
Sebastien
Posté le 12-10-2004 à 11:53:52  profilanswer
 

Je viens de faire un test chez moi les deux methodes fonctionnent aussi bien l'une que l'autre.


Message édité par Sebastien le 12-10-2004 à 11:57:14
n°871277
Profil sup​primé
Posté le 12-10-2004 à 11:56:20  answer
 

seb > $_SERVER['argv'][0] ne contient pas que le premier argument?

n°871278
Sebastien
Posté le 12-10-2004 à 11:57:02  profilanswer
 

Non il contient la premiere ligne d'arguments en fait, et comme dans une url tu as une seule ligne.

n°871279
Profil sup​primé
Posté le 12-10-2004 à 11:57:38  answer
 

pas mal ca [:gratgrat]

n°871281
kameha
Posté le 12-10-2004 à 11:59:31  profilanswer
 

ça marche parfaitement maintenant merci

n°871283
kameha
Posté le 12-10-2004 à 12:00:55  profilanswer
 

seb > la manip c'est de remplacer $_GET par $_SERVER['argv'][0] ?


Message édité par kameha le 12-10-2004 à 12:01:26
n°871284
Sebastien
Posté le 12-10-2004 à 12:01:48  profilanswer
 

tu as juste besoin d'ecrire
 

Code :
  1. echo '<td>';
  2.     echo "<a href=\"".$_SERVER['PHP_SELF']."?lang=fr&".$_SERVER['argv'][0]."\">"; 
  3.     echo "<img src=\"img/frames/dp-fr-a.gif\" alt=\"Fran&ccedil;ais\"></a></td>";


Message édité par Sebastien le 12-10-2004 à 12:02:08
n°871287
kameha
Posté le 12-10-2004 à 12:04:59  profilanswer
 

oulah...
par contre je me retrouve avec 2 $langue dans mon lien
 :pt1cable:

n°871290
Profil sup​primé
Posté le 12-10-2004 à 12:07:55  answer
 

ben oui si tu as deja le $lang dans ton get [:kiki]

n°871494
kameha
Posté le 12-10-2004 à 14:54:32  profilanswer
 

Je suis obligé de l'avoir dans mon url puisque c'est un parametre que je passe dans mon lien?
Le probleme actuellement c'est quand je navigue plus de 2 fois d'une langue à l'autre à la suite.


Message édité par kameha le 12-10-2004 à 15:03:03
n°871512
kameha
Posté le 12-10-2004 à 15:04:33  profilanswer
 

Est ce que le raisonnement serait:
Si $langue existe dans l'url-->le remplacer.

n°871513
Profil sup​primé
Posté le 12-10-2004 à 15:05:54  answer
 

Code :
  1. <?php 
  2.     foreach($_GET as $key=>$value) { 
  3.                 if ($key != "lang" )
  4.                       $get .= "&$key=$value"; 
  5.     }
  6.     echo "<td>";
  7.     echo "<a href=\"".$_SERVER['argv'][0]."?lang=fr$get\">"; 
  8.     echo "<img src=\"img/frames/dp-fr-a.gif\" alt=\"Fran&ccedil;ais\"></a></td>";
  9.     ?>

n°871523
kameha
Posté le 12-10-2004 à 15:14:16  profilanswer
 

merci
 
comment ça se fait que $_SERVER['argv'][0] n'écrit pas index2.php qui devrait se trouver derriere l'adresse et avant les variables?

n°871524
Profil sup​primé
Posté le 12-10-2004 à 15:14:52  answer
 

index2.php n'est pas un argument

n°871526
kameha
Posté le 12-10-2004 à 15:16:58  profilanswer
 
n°871527
kameha
Posté le 12-10-2004 à 15:17:24  profilanswer
 

donc il faut que je l'écrive en dur dans mon link?

n°871528
Profil sup​primé
Posté le 12-10-2004 à 15:18:21  answer
 

$_SERVER["PHP_SELF"] ca te dit rien?

n°871533
kameha
Posté le 12-10-2004 à 15:21:43  profilanswer
 

oui effectivement
excuse moi de te solliciter autant mais....je le met ou la dedans?
echo "<a href=\"".$_SERVER['argv'][0]."?lang=fr$get\">";

n°871534
kameha
Posté le 12-10-2004 à 15:22:14  profilanswer
 

au passage que veut dire le [0] ?

n°871541
Profil sup​primé
Posté le 12-10-2004 à 15:25:44  answer
 

oulalala
 
bon $_SERVER[] est un array contenant plusieurs autre variable, c'est pour ca que c'est une superglobale.
 
Donc $_SERVER[argv] recupere les arguments, et 0 represente le premier indexe de l'array $_SERVER[argv].
Ce 0 contient donc tout les parametres de l'url vu qu'il n'y a qu'une ligne.
 
Donc le lien que tu vient de mettre plus haut ne veut rien dire, a part mettre deux fois les meme arguments dans l'adresse.
 
$_SERVER["PHP_SELF"] represente la page courante SANS les argument, pour toi ca sera donc index2.php
 
et $get, ben ca contient tout les argument passé apres le ? de ton url.


Message édité par Profil supprimé le 12-10-2004 à 15:25:59
n°871544
kameha
Posté le 12-10-2004 à 15:27:10  profilanswer
 

j'ai remplacé $_SERVER['argv'][0] par $_SERVER["PHP_SELF"].
Ca tourne plutot bien...
merci pour tes explications


Message édité par kameha le 12-10-2004 à 15:35:46
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  changement de langue

 

Sujets relatifs
JS et changement dyn. des liens...[RESOLU] différence $langue et $_SESSION['langue']
Changement curseurchanger la langue de visual c++
[Perl] Détecter un changement d'heuresystème de langue (problème avec les url !)
[Batch] Copie repertoires avec changement de nomchangement de page stylé
changement des caractéres éligible 
Plus de sujets relatifs à : changement de langue


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR