Probleme avec les ? les variables
techsguide
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'ai un site qui est multi langue je fais ça :
include("lang/languages.php");
$i=0;
while (list($key, $value) = each($languages))
{
if($i++)echo ' | ';
echo "<a href=\"".$_SERVER['REQUEST_URI']."?lang=".$key."\">".$value."</a>";
}
include "langsettings.php";
if(empty($lang)) {
}else {
include("lang/$lang.php");
}
ce que j'obtiens
c'est <a href="/?lang=en">English</a> | <a href="/?lang=fr">Francais</a> | <a href="/?lang=ru">Русский</a>
lorsque je clique successivement j'obtiens un bug
?lang=en?lang=fr?lang=ru
je veux avoir un seule ? et je ne sais pas comment effacer les ? présent si il n'y en a pas
si quelqu'un peux m'aider
merci
include("lang/languages.php");
$i=0;
while (list($key, $value) = each($languages))
{
if($i++)echo ' | ';
echo "<a href=\"".$_SERVER['REQUEST_URI']."?lang=".$key."\">".$value."</a>";
}
include "langsettings.php";
if(empty($lang)) {
}else {
include("lang/$lang.php");
}
ce que j'obtiens
c'est <a href="/?lang=en">English</a> | <a href="/?lang=fr">Francais</a> | <a href="/?lang=ru">Русский</a>
lorsque je clique successivement j'obtiens un bug
?lang=en?lang=fr?lang=ru
je veux avoir un seule ? et je ne sais pas comment effacer les ? présent si il n'y en a pas
si quelqu'un peux m'aider
merci
Configuration: Mac OS X Firefox 3.0
7 réponses
-
re,
on s'en tape de la place de l''include()'…
'REQUEST_URI'
L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.
manuel PHP
avec '$_SERVER['REQUEST_URI']' tu reçois par exempleheader.php?lang=en
auquel tu ajoutes un autre paramètre ce qui faitheader.php?lang=en?lang=fr
et ainsi de suite.
il faut que tu ajoutes le paramètres au bout de l'url du fichier seulement.
ça tu l'as avec '__FILE__' ou '$_SERVER['PHP_SEFL']'.
-
-
-
salut,
que veux-tu dire par lorsque je clique successivement ?
tu peux déjà simplifier ta boucle avec 'foreach()' et pour le lien j'enlèverais les slashs et j'optimiserais avec un seul 'echo()' et des apostrophes.<?php // -------------------------------- $i=0; while (list($key, $value) = each($languages)) { if($i++)echo ' | '; // à quoi sert le test ? $i peut toujours s'incrémenter donc le résultat doit toujours être positif echo "<a href=\"".$_SERVER['REQUEST_URI']."?lang=".$key."\">" .$value."</a>"; } // équivalent à : -------------- foreach( $languages as $key => $value ) { echo ' | <a href='.$_SERVER['REQUEST_URI'].'?lang='.$key.'>' .$value.'</a>'."\n"; // \n pour le retour à la ligne dans le code HTML, c'est plus lisible } // -------------------------------- ?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,`
tout d'abord merci pour cette simplification je vais tester et je clarifie
j'obtiens dans ma page http://techsguide.free.fr
lorsque je clique sur les liens "en haut" de langue (français anglais ....) successivement
les requêtes s'accumulent
http://techsguide.free.fr/?lang=en?lang=fr?lang=ru et ça pose problème je cherche un moyen qu'il n'y ai qu 'une seule à la fois .
merci pour votre aide -
ouui puisque tu lui demande de coller une nouvelle variable à celles déjà envoyées ('$_SERVER['REQUEST_URI']').
remplace le par '__FILE__' ou enlève le paramètre 'lang' dans la requête reçue.echo ' | <a href='.__FILE__.'?lang='.$key.'>'
-
bonjour,
C'est pas loin mais malheureusement le script s'execute a partir de mon header.php ce qui me permet de l'appliquer à tout le site
donc la requete s'execute sur http://..../header.php?lang=en et cela ne marche pas .
merci quand mm pour ces conseil