Avatar billede cyberdude Nybegynder
29. november 2004 - 16:16 Der er 7 kommentarer og
1 løsning

skift mellem flere sprog virker ikke

Hejsa...

Jeg har følgende kode :

switch ($lang) {
case da:
    session_register('lang');
    $lang = "da";
    break;
case en:
    session_register('lang');   
    $lang = "en";
    break;
default:
    session_register('lang');   
    $lang = "da";
    }

Og følgende link :
<a href="?lang=da" class="menupkt">Dansk</a>
<a href="?lang=en" class="menupkt">Engelsk</a>
<?
echo "<p><br/></p>&nbsp;&nbsp; $lang";
?>

Men det virker ikke...

Uanset hvilken af de 2 links man trykker på så stå der altid "da" i linien med "echo...";

Hvad har jeg gjort forkert ?
Avatar billede coderdk Praktikant
29. november 2004 - 16:18 #1
Har du session_start() i toppen?
Evt også i toppen, efter session_start:
  $lang = ( isset( $_GET['lang'] ? $_GET['lang'] : ( isset( $_SESSION['lang'] ? $_SESSION['lang'] : '' ) );
Avatar billede cyberdude Nybegynder
29. november 2004 - 16:25 #2
ja har session_start() i toppen af header filen

efter indsættelsen af
$lang = ( isset( $_GET['lang'] ? $_GET['lang'] : ( isset( $_SESSION['lang'] ? $_SESSION['lang'] : '' ) );

får jeg denne fejl...
Parse error: parse error, expecting `','' or `')'' in /home/e-smith/files/ibays/ddcms_/html/pages/header.php on line 3

Og linie 3 er ovenstående...
Avatar billede coderdk Praktikant
29. november 2004 - 16:32 #3
Ja, sorry, skulle være:

$lang = ( isset( $_GET['lang'] ) ? $_GET['lang'] : ( isset( $_SESSION['lang'] ) ? $_SESSION['lang'] : '' ) );
Avatar billede sukos Juniormester
29. november 2004 - 16:33 #4
$lang = "da";

if(isset($_GET["lang"])) {
$lang = $_GET["lang"];
}

switch ($lang) {
case en:
    $_SESSION["lang"] = "en"; 
    break;
default:
    $_SESSION["lang"] = $lang; 
    }
Avatar billede sukos Juniormester
29. november 2004 - 16:36 #5
hmm, burde nu nok bruge "da" i stedet for $lang som default!
Avatar billede sukos Juniormester
29. november 2004 - 16:37 #6
Men hvorfor ikke med en cookie?
Så er det samme sprog hvis brugeren vender tilbage?
Avatar billede sukos Juniormester
29. november 2004 - 16:43 #7
$lang_array = array("da", "en");

$lang = "da";

if(isset($_GET["lang"]) && in_array($_GET["lang"], $lang_array)) {
$lang = $_GET["lang"];
}

SELECT FROM `table` WHERE `lang` = '". $lang ."'") or die (mysql_error());
Avatar billede editone Nybegynder
29. november 2004 - 18:12 #8
Hmm prøv med dette:

if(isset($_GET["lang"]) && $_GET["lang"] = da) {
session_register('lang');
$lang = "da";
break; }
elseif(isset($_GET["lang"]) && $_GET["lang"] = en) {
session_register('lang');
$lang = "en";
break; }
else {
session_register('lang');
$lang = "da";
break; }

Mvh editone - editone.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester