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