Gå til innhold

PHP kode for å finne ut hvilket land du er i?


Anbefalte innlegg

Hei!

 

Jeg lager en nettside, og en av tingene brukerne skal få gjøre er å velge hvilket land de hører til. Men denne listen er jo naturligvis veldig lang, så jeg lurer på en ting:

 

Finnes det kode (enten i PHP, Javacript, HTML elns) som finner ut hvilket land du er i (slik som andre sider automatisk finner ut hvilket land du er i, og setter språk basert på det selv om du bare skriver .com), også velger dette landet som førstevalg (eller allerede valgt) i drop-down menyen?

 

Tusen takk på forhånd! Jeg setter pris på all hjelp!

 

Hilsen Alekplay

Lenke til kommentar
Videoannonse
Annonse

Heija!

 

Jeg fant dette http://stackoverflow.com/questions/6747833/how-can-i-find-a-users-country-using-html5-geolocation takket være det du sa jeg skulle søke på! :)

 

Problemet nå er at jeg ikke vet hva jeg skal gjøre med det :p Jeg har ingen erfaring eller opplæring innenfor webdesign eller programmering, så alt er selvlært og dette er noe jeg ikke kan :p Hvordan kan jeg få ut verdien (landsnavnet) også sette det som en pre-chosen value i drop down menyen min dersom jeg har det der. Dersom det ikke står der vil jeg gjerne at den skal stille seg på "Not listed".

 

(Altså jeg vil at den skal finne ut at jeg er i Norge, så automatisk velge Norway i drop-down menyen med en gang siden laster. Er jeg i USA vil jeg at den skal finne ut det og sette det. Er jeg i et land som ikke er lista (eller som er skrevet annerledes) vil jeg at den skal stille seg på "not listed")

Lenke til kommentar

Jeg ville brukt en geolokasjonsdatabase, som jeg har gjort flere ganger før.

Du får tak i en gratis fra http://www.maxmind.com/en/geolite

 

Geolite city / binær er dne jeg har brukt en del, den er veldig kjapp.

Du hoster filen hos deg selv, gjerne utenfor www-mappen og så bruker du API-kall (står i dokumentasjonen hvordan det virker).

 

Ellers er det mulig å bruke geolokasjonsstandarder fra W3C/HTML5, men da får brukeren en popup som de fleste trykker nei på. (Nettstedet ønsker å spore din lokasjon).

 

Av en eller annen merkelig grunn er det slik at brukere er redd for å bli sporet på PC-en, men ikke redd for å bli sporet på mobilen. Litt morsomt synes jeg.

 

Du kan dog også lage en "failsafe"; dvs. at du først ber om sporingsaksept via nettleser og så ev fallback på geolitce city API. Med city API får du treff der din ISP holder til, som betyr at i noen tilfeller vil de på landet havne i feil bygd. Men i store byer får du som regel riktig by. De andre standardene gir bedre treff.

 

Man kan også bruke APIen til google maps, lure ut lokasjonen via den. Om du da er på WIFI, får du veldig nøyaktig treff. Kablet gir litt mindre nøyaktig treff. (dette er kode du nesten må se på APIkallene og implementere selv).

Lenke til kommentar

Litt avhengig av hva du skal med det her, så er det vel fort litt feil å bruke land? Som oftest skal man jo bare sette rett språk, og isåfall så finnes det er jo en HTTP-header som gir et klart svar på hvilke språk brukeren ønsker lese det i, i prioritert rekkefølge. Mulig de holder? Hvis jeg f.eks. tar med meg PCen min til Spania er jo ikke jeg interessert i å lese nettstedet på spansk.

Lenke til kommentar

Jeg tenkte også det i starten, men fant ut at land er en bedre løsning.

 

Grunnene til dette er som følger:

1. Jeg har ikke tenkt å ha flere språk med en gang jeg lanserer siden, men senere en gang. Gir jeg brukeren muligheten til å velge språk, men det er uansett engelsk så virker dette litt dumt.

Kan jo selvsagt lage en slags pop-up når jeg får til flere språk, slik at en gang i fremtiden når jeg f.eks. har fått inn spansk, fransk, tysk osv så vil alle brukerne som logger seg på få denne popupen og jeg kan sette den inn i registreringskjemaet da, men jeg er selv ikke noen fan av slike popups som kommer så jeg ville gjerne lagt dette inn med en gang.

2. Det er flere funksjoner som skal være avhengig av landsvalget, enn bare språket på siden. Jeg holder disse funksjonene litt hemmelig akkurat nå frem til siden kommer i beta, men flere av disse blir enklere om jeg vet landet til personen enn språket. Selvsagt så er en del av disse funksjonene språkbasert, så det hadde vært mulig å bruke språk her også men jeg tror jeg vil foretrekke land.

 

Men altså, når du sier det så kunne det kanskje vært lettere å la brukeren velge språk istedenfor land... Hmmm... Du kom med en idé der altså! ;)

 

Hvordan gjør man dette i så fall? Jeg vil gjerne prøve begge, og se hva som funker best ;)

 

Dessuten så skal ikke språket automatisk velges for brukeren. Foreløpig så er det bare engelsk, og det som velges er bare hvilken som vil stå som standardverdi i nedtrekkslista når man går inn.

Istendenfor at den står f.eks. "Choose your country" eller "Afganisthan" (som er det første), så skal landet du befinner deg i stå der som allerede valgt slik at du slepper å trykke på og lete etter riktig land.

 

Men det kan godt være at språk fungerer like godt/bedre.

 

Kan du si meg hvordan jeg gjør dette? :)

Lenke til kommentar
  • 2 uker senere...

Bare et lite tips: Sånn det ser ut her, så skal man kunne velge språket til nettsiden, kun for hvilket språk innholdet står i, derfor ville jeg anbefale å gjøre det sånn som det har blitt gjort på youtube (står hvilket språk som har blitt satt (språket til brukeren som standard) og instruksjoner på hvordan man endrer språket (trykke på en fast lenke nederst på siden eller trykke på en lenke som står der valgt språk står) (evt. bare en lenke med bytt språk-lenke).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...