Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 08:39 Der er 17 kommentarer og
1 løsning

Videresend efter sprog

Jeg har fundet dette script andetsteds på eksperten, men jeg kan ikke få det til at virke, hvad gør jeg forkert?

<?
$sprog='da'; // default, hvis intet angivet
$ss = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($ss as $s) {
if (eregi('^en',$s)) { $sprog='en'; break; }
if (eregi('^da',$s)) { $sprog='da'; break; }
}
switch ($sprog) {
case 'en': include "en.htm";
break;
case 'da': include "dk/index.htm";
break;
}
?><title>Welcome to MechanicStuff.com</title>

Den skal gøre sådan at hvis man har en dansk browser, skal den sende brugeren til www.mechanicstuff.com/dk/index.htm alle andre skal sendes til en.htm. Men den sender kun til den engelske side selv om jeg har dansk browser.

Kan man ikke gøre det lidt mere simpel ved i starten af en.htm som så skal hedde index.htm, at hvis man har dansk browser gå til dansk link (dk/index.htm) ellers fortsæt?
Avatar billede exp Juniormester
07. december 2004 - 09:28 #1
<?
$ss = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($ss as $s) {
if (eregi('^en',$s)) { $sprog='en'; break; }
}
switch ($sprog) {
case 'da': include "dk/index.htm";
break;
default: include "en.htm";
break;
}


(utestet)
Avatar billede exp Juniormester
07. december 2004 - 09:29 #2
Whooops...:


<?
$ss = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($ss as $s) {
if (eregi('^da',$s)) { $sprog='da'; break; }
}
switch ($sprog) {
case 'da': include "dk/index.htm";
break;
default: include "en.htm";
break;
}
?>
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 09:37 #3
virker ikke, den hopper stadik kun til en.htm
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 09:44 #4
gør jeg noget forkert, jeg ligger det ind i index.php, og .htm siderne er skrevet i namo, ved ikke om det har betydning?
Avatar billede kammeyer Nybegynder
07. december 2004 - 11:52 #5
Jeg testede dit script på min boks - og der er ingen problemer der. Melder fejl om en.htm i firefox og dk/index.htm i IE - de står til hvert sit sprog hos mig - så du skal nok lede efter en opsætningsfejl i din browser.
Avatar billede kammeyer Nybegynder
07. december 2004 - 11:52 #6
Må lige indskyde at fejlene skyldes at jeg testede egen server hvor de to filer ikke eksisterer :P
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 12:17 #7
Har du nogen anelse om hvad der kan være galt i browser? der står "DA" nede ved uret, så den må da være sat til dansk?
Jeg har lige fået testet siden af en kammerat, og han får også engelsk side, kan det have noget med register_global er on?
Avatar billede exp Juniormester
07. december 2004 - 12:20 #8
Det der står nede ved uret er tastaturets sprog. Og i og med at den står der, vil jeg skyde på at du har engelsk version af Windows og browser...
Avatar billede schaefner Juniormester
07. december 2004 - 12:20 #9
Har du prøvet at udskrive $_SERVER['HTTP_ACCEPT_LANGUAGE'] og se hvad den indeholder?

<?php
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
?>
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 12:23 #10
den siger DA
Avatar billede kammeyer Nybegynder
07. december 2004 - 15:14 #11
Hvis den giver DA og dit script SKAL have "en" som input for at hente den engelske side frem, så er der da noget helt galt. Prøv lige at dobbelttjekke værdien samt at du ikke har ændret i dit script.
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 16:42 #12
Det værste ved det hele er(og det har jeg først opdaget nu) at dk flaget mistede sit oprindelige link dvs. www.mechanicstuff.com/dk/index.htm men kun til linket, til øverst på serveren(dvs. index.com), selv og jeg var inde og tjekke linket. Efter jeg ændrede index tilbage kom linket igen (mystikst) eller mærkeligt???????
Mit spørgsmål er:
hvorfor ændre et link karakter fordi man laver om på strukturen, dog uden at ændre noget væsentligt, dvs. de andre links virker perfekt
og jeg ændrede ikke stig eller server
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 16:43 #13
har det noget med mit oprindelige spg. at gøre?
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 16:49 #14
til kammeyer- jeg ligger vel bare scriptet op på serveren, og går til denne internet side, så burde den vel sigehvilken browser jeg bruger(detharjeg gjort). men jeg prøver igen (tror ikke det hjælper:-( )
Avatar billede Cyberdata.dk Praktikant
07. december 2004 - 16:57 #15
den er god nok, den viser "da" det bliver mere, og mer mærkeligt, jeg håber der en der har enløsning
Avatar billede themanronnie Nybegynder
08. december 2004 - 08:51 #16
<?php
if ($_SERVER['HTTP_CLIENT_IP']) {
  $addr = $_SERVER['HTTP_CLIENT_IP'];
} else if ($_SERVER['HTTP_X_FORWARDED_FOR']) {
  $addr = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if ($_SERVER['REMOTE_ADDR']) {
  $addr = $_SERVER['REMOTE_ADDR'];
}
$file = file('http://ripe.net/perl/whois?searchtext='.$addr);
foreach ($file AS $line) {
  if (strpos($line,'country') !== false) {
    echo trim(str_replace('country:','',$line));
    break;
  }
}
?>
har fundet scriptet på nettet...
Gem landet i en variabel og brug den til at vælge land i stedet for bare at udskrive landet.
Avatar billede themanronnie Nybegynder
08. december 2004 - 08:53 #17
tror forresten det var et script jeg har fundet på schaefners hjemmeside så hvis det kan bruges så giv ham points :)
Avatar billede Cyberdata.dk Praktikant
27. februar 2005 - 02:07 #18
fik ikke løst problemet
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