kostenloser Webspace werbefrei: lima-city


Ländererkennung geht nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    p**********n

    Hi Leute,
    biete meine Website 2 Sprachig an und hab deswegen ne abfrage nach der Sprache des Clients drin der dann automatisch auf den deutschen oder englischen Index weiterleitet. Auf nem Englischen Rechner funktioniert das auch super, aber auf nem deutschen wird man trd. auf den englischen index weitergeleitet.
    Ich hoffe ihr könnt mir da helfen.

    Hier mein Code:

    <?php
    	$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    	if ( $lang = "en-us" || $lang = "en-US" || $lang = "en-Us" || $lang = "en-en" || $lang = "en-EN" || $lang = "en-En" || $lang = "en-US,en;q=0.8")
    	{ 
        	header ('Location: index_eng.html');
        } 
       	else if ($lang = "de-de" || $lang = "de-DE" || $lang = "en-De" || $lang = "de-DE,de;q=0.8" || $lang = "de-de,de;q=0.8")
       	{ 
        	header ('Location: index_ger.html');
        }
    ?>


    Danke schonmal im voraus ;)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. such mal nicht dem genauen String, sondern ob ein Teil-String vorkommt

    Beachte, viele Browser haben da auch beide Sprachen drin (de und en)

    mein Wert von $_SERVER['HTTP_ACCEPT_LANGUAGE'] ist:
    de-de,de;q=0.8,en-us;q=0.5,en;q=0.3


    Wenn Du nur 2 Sprachen hast,
    also entweder Deutsch oder (alles andere) Englisch, dann in Etwa so

    <?php 
    
    $user_lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    
    if (stripos($user_lang, 'de') !== false) { $run_site = 'index_ger.html'; } 
    else { $run_site = 'index_eng.html'; } 
    
    header ('Location: '.$run_site);
    
    ?>


    stripos() - Findet das erste Vorkommen eines Strings,
    (unabhängig von Groß- und Kleinschreibung)

    Gibt die Position als Integer zurück. (kann auch Position 0 sein)
    Wenn needle nicht gefunden wird, dann den boolean-Wert FALSE

    ob Du jetzt nach 'de' oder nach 'de-de' sucht bleibt Dir überlassen
    dann kommt der User, der diesen Teilstring im User-Agent hat zur deutsche Seite

    Edit:
    oder die IP-Adresse des Besuchers für Ermittlung der Geo-Location nutzen
    z.B. ... http://freegeoip.net ... oder http://www.utrace.de/api.php ... oder andere
    (beachte, viele nicht kostenlos, andere haben Limits)

    Beitrag zuletzt geändert: 31.10.2013 15:17:06 von spieleweb
  4. Autor dieses Themas

    p**********n

    Ok Danke,
    hab das so gemacht und funktioniert SUPER ;)
  5. g***t

    Hallo Paul,

    in Deiner Bedingung ist ein Fehler. Du musst doppelte Gleichheitszeichen benutzen, ansonsten wird $lang ein Wert zugewiesen. So ist es richtig:
    if ( $lang == "en-en" ) ...
    Gruß
    Gerit
  6. Ambesten: http://geoiplookup.wikimedia.org/

    nutzen gibt kein limit :)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!