changement de langue

changement de langue - PHP - Programmation

Marsh Posté le 12-10-2004 à 10:55:39    

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

Reply

Marsh Posté le 12-10-2004 à 10:55:39   

Reply

Marsh Posté le 12-10-2004 à 11:00:15    

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

Reply

Marsh Posté le 12-10-2004 à 11:01:07    

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

Reply

Marsh Posté le 12-10-2004 à 11:07:38    

jvais tester ça merci.
 
Pourquoi controler mes get?

Reply

Marsh Posté le 12-10-2004 à 11:27:48    

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
Reply

Marsh Posté le 12-10-2004 à 11:31:28    

ché pa moi, test

Reply

Marsh Posté le 12-10-2004 à 11:36:03    

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

Reply

Marsh Posté le 12-10-2004 à 11:36:15    

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
Reply

Marsh Posté le 12-10-2004 à 11:37:49    

Sebastien a écrit :

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

c'etait un piege [:popok]

Reply

Marsh Posté le 12-10-2004 à 11:38:22    

Sebastien a écrit :

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


 
meme probleme
la page n'affiche rien

Reply

Marsh Posté le 12-10-2004 à 11:38:22   

Reply

Marsh Posté le 12-10-2004 à 11:38:51    

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

Reply

Marsh Posté le 12-10-2004 à 11:40:45    

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

Reply

Marsh Posté le 12-10-2004 à 11:47:06    

   <?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
Reply

Marsh Posté le 12-10-2004 à 11:47:35    

echo $get donne quoi?

Reply

Marsh Posté le 12-10-2004 à 11:48:44    

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
Reply

Marsh Posté le 12-10-2004 à 11:51:04    

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

Reply

Marsh Posté le 12-10-2004 à 11:52:26    

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
Reply

Marsh Posté le 12-10-2004 à 11:52:55    

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

Reply

Marsh Posté le 12-10-2004 à 11:53:52    

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
Reply

Marsh Posté le 12-10-2004 à 11:56:20    

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

Reply

Marsh Posté le 12-10-2004 à 11:57:02    

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

Reply

Marsh Posté le 12-10-2004 à 11:57:38    

pas mal ca [:gratgrat]

Reply

Marsh Posté le 12-10-2004 à 11:59:31    

ça marche parfaitement maintenant merci

Reply

Marsh Posté le 12-10-2004 à 12:00:55    

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


Message édité par kameha le 12-10-2004 à 12:01:26
Reply

Marsh Posté le 12-10-2004 à 12:01:48    

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
Reply

Marsh Posté le 12-10-2004 à 12:04:59    

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

Reply

Marsh Posté le 12-10-2004 à 12:07:55    

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

Reply

Marsh Posté le 12-10-2004 à 14:54:32    

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
Reply

Marsh Posté le 12-10-2004 à 15:04:33    

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

Reply

Marsh Posté le 12-10-2004 à 15:05:54    

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.     ?>

Reply

Marsh Posté le 12-10-2004 à 15:14:16    

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?

Reply

Marsh Posté le 12-10-2004 à 15:14:52    

index2.php n'est pas un argument

Reply

Marsh Posté le 12-10-2004 à 15:16:58    

Reply

Marsh Posté le 12-10-2004 à 15:17:24    

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

Reply

Marsh Posté le 12-10-2004 à 15:18:21    

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

Reply

Marsh Posté le 12-10-2004 à 15:21:43    

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

Reply

Marsh Posté le 12-10-2004 à 15:22:14    

au passage que veut dire le [0] ?

Reply

Marsh Posté le 12-10-2004 à 15:25:44    

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
Reply

Marsh Posté le 12-10-2004 à 15:27:10    

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
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed