/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Viderestilling af udenlandsk besøgende
Fra : Silas Boye Nissen


Dato : 25-07-05 21:28

Hej

Jeg siger det med det samme: Jeg ved så godt som intet om PHP, og
derfor håber jeg på hjælp til at lave en lille PHP-kode.

Jeg har modtaget følgende kode fra en bekendt:
(Den gør at alle udenlandsk besøgende ryger direkte ind på den
engelske forside)

<?php
$ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
header("Location: index.".(($ary[0]=="da")?"dk":"en"))
?>

Er der nu nogen, som kan fortælle mig, hvordan man ændrer koden
til at sende danske, svenske og norske besøgende ind på "dk" og
tyske samt østrigere ind på "de" og resten skal til "en"?

Venlig hilsen,
Silas Boye Nissen
www.sporvognsrejser.dk

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Kim Schulz (25-07-2005)
Kommentar
Fra : Kim Schulz


Dato : 25-07-05 23:26

On 25 Jul 2005 20:28:28 GMT
Silas Boye Nissen <gizmo@paradis.dk> wrote:

> Hej
>
> Jeg siger det med det samme: Jeg ved så godt som intet om PHP, og
> derfor håber jeg på hjælp til at lave en lille PHP-kode.
>
> Jeg har modtaget følgende kode fra en bekendt:
> (Den gør at alle udenlandsk besøgende ryger direkte ind på den
> engelske forside)
>
> <?php
> $ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
> header("Location: index.".(($ary[0]=="da")?"dk":"en"))
> ?>
>
> Er der nu nogen, som kan fortælle mig, hvordan man ændrer koden
> til at sende danske, svenske og norske besøgende ind på "dk" og
> tyske samt østrigere ind på "de" og resten skal til "en"?

<?php
$ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
if($ary[0]=="da" || $ary[0]=="sv"||$ary[0]=="no"){
header("Location: indexdk");
}else if ($ary[0]=="de" || $ary[0]=="au"){
   header("Location: indexde");
}else {
   header("Location: indexen");
}
?>

--
Kim Schulz | Keen of Fundanemt? Want to share experieces with
Geek by nature | other users? join The Fundanemt User Group NOW!
schulz.dk | http://www.fundausers.org

Erik Ginnerskov (25-07-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 25-07-05 23:54

Kim Schulz wrote:

> if($ary[0]=="da" || $ary[0]=="sv"||$ary[0]=="no"){

Sikker på, at koden for svenske browsere ikke er se, lige som landekoden i
svenske webadresser?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Bertel Lund Hansen (26-07-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 26-07-05 01:52

Kim Schulz skrev:

[en okay løsning]

Jeg ville foretrække en switch:

<?php
$ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
switch ($ary[0]) {
case 'se':;
case 'no':;
case 'da':   header("Location: indexdk");
case 'au':;
case 'de':   header("Location: indexde");
default:   header("Location: indexen");
}
?>

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Peter Brodersen (26-07-2005)
Kommentar
Fra : Peter Brodersen


Dato : 26-07-05 03:10

On Tue, 26 Jul 2005 02:52:07 +0200, Bertel Lund Hansen
<nospamfilius@lundhansen.dk> wrote:

>Jeg ville foretrække en switch:
>
><?php
>$ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
>switch ($ary[0]) {
> case 'se':;
> case 'no':;
> case 'da':   header("Location: indexdk");
> case 'au':;
> case 'de':   header("Location: indexde");
> default:   header("Location: indexen");
>}
>?>

Her vil brugeren altid blive sendt videre til indexen, idet du glemmer
at break'e ud af dine cases. Så alle header-funktioner vil blive
udført, og seneste header erstatter tidligere ens headers.

Så det bør snarere være:

<?php
$ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
switch ($ary[0]) {
case 'se':
case 'no':
case 'da':   header("Location: indexdk");
break;
case 'au':
case 'de':   header("Location: indexde");
break;
default:   header("Location: indexen");
}
?>

Derudover skal Locations angives som en fuld og ikke en relativ URL.

Ydermere bør man måske også tjekke præcedens samt øvrige sprog, hvis
fx primære sprog er islandsk og sekundære sprog er dansk (så bliver
engelsk stadigvæk valgt pt.).

Slutteligt er der "problemet" med at der blot vælges det land,
brugerens browser er sat op til at vise. Langt de færreste brugere
indstiller dette.

--
- Peter Brodersen

Silas Boye Nissen (26-07-2005)
Kommentar
Fra : Silas Boye Nissen


Dato : 26-07-05 11:45

Peter Brodersen wrote in dk.edb.internet.webdesign.serverside.php:

> <?php
> $ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
> switch ($ary[0]) {
> case 'se':
> case 'no':
> case 'da':   header("Location: indexdk");
> break;
> case 'au':
> case 'de':   header("Location: indexde");
> break;
> default:   header("Location: indexen");
> }
> ?>

Hej

Tak for de mange svar.

Er der nu nogle, som kan forklare mig hvad forskellen er på at bruge
Peter Brodersens med "switch" eller at bruge Kim Schulz med "if" og
"else"?

--
Venlig hilsen,
Silas Boye Nissen
www.sporvognsrejser.dk

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Henrik Stidsen (26-07-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 26-07-05 12:20

Silas Boye Nissen expressed precisely :
> Er der nu nogle, som kan forklare mig hvad forskellen er på at bruge
> Peter Brodersens med "switch" eller at bruge Kim Schulz med "if" og
> "else"?

Syntaxen, ikke meget andet.

En switch er i dette tilfælde pænere og nemmere (=mere overskuelig) at
have med at gøre.

--
Henrik Stidsen - http://henrikstidsen.dk/



Bertel Lund Hansen (26-07-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 26-07-05 12:59

Silas Boye Nissen skrev:

>Er der nu nogle, som kan forklare mig hvad forskellen er på at bruge
>Peter Brodersens med "switch" eller at bruge Kim Schulz med "if" og
>"else"?

Ingen som helst når det er oppe at køre.

Det er et spørgsmål om hvad der ser mest overskueligt ud mens man
skriver eller læser koden.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Silas Boye Nissen (26-07-2005)
Kommentar
Fra : Silas Boye Nissen


Dato : 26-07-05 13:21

Peter Brodersen wrote in dk.edb.internet.webdesign.serverside.php:

> <?php
> $ary=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
> switch ($ary[0]) {
> case 'se':
> case 'no':
> case 'da':   header("Location: indexdk");
> break;
> case 'au':
> case 'de':   header("Location: indexde");
> break;
> default:   header("Location: indexen");
> }
> ?>


Hej igen

Kan I fortælle mig, hvad forkortelsen er for sproget i Grønland?

--
Venlig hilsen,
Silas Boye Nissen
www.sporvognsrejser.dk

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dino (26-07-2005)
Kommentar
Fra : Dino


Dato : 26-07-05 15:58

Den 26-7 2005 skrev Silas Boye Nissen i
dk.edb.internet.webdesign.serverside.php:

> Kan I fortælle mig, hvad forkortelsen er for sproget i Grønland?

Måske Inuktitut [iu] ?

--
Dino

Verdens største samling af danske
script og moduler til Hamsteren
<http://starcruiser.dk/hamstersiden/>

Dino (26-07-2005)
Kommentar
Fra : Dino


Dato : 26-07-05 16:01

Den 26-7 2005 skrev Peter Brodersen i
dk.edb.internet.webdesign.serverside.php:

> Ydermere bør man måske også tjekke præcedens samt øvrige sprog, hvis
> fx primære sprog er islandsk og sekundære sprog er dansk (så bliver
> engelsk stadigvæk valgt pt.).

Kan du give et eksempel på hvordan det kan gøres?

--
Dino

Verdens største samling af danske
script og moduler til Hamsteren
<http://starcruiser.dk/hamstersiden/>

Kim Schulz (25-07-2005)
Kommentar
Fra : Kim Schulz


Dato : 25-07-05 23:27

On Tue, 26 Jul 2005 00:26:06 +0200
Kim Schulz <kim@schulz.dk> wrote:

[snip]
Bemærk dog at den stump kode du har afhænger af browserens foretrukne
sprog og derfor ikke nødvendigvis fanger det rigtige land for en
person. F.eks. kører jeg med engelsk som foretrukne sprog.

--
Kim Schulz | Fundanemt Content Management system:
Geek by nature | http://www.fundanemt.com
schulz.dk | http://www.fundausers.org

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408928
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste