kostenloser Webspace werbefrei: lima-city


Sprache (Land) des Browser (oder OS) auslesen ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    b****r

    Hallo

    keine Ahnung ob das mit PHP geht (oder mitz Javascript) ... aber ich denke eher PHP ...
    also ich suche etwas,
    womit ich die tag/sprache">Sprache / das Land des Besuchers auslesen kann
    um alle, die nicht deutsch-sprachig sind aus-filtern (bzw. umleiten) zu können.

    hat jemand eine Idee, wie ich das am besten angehe ?!

    habe schon was von IP-Filter in .htaccess gelesen,
    aber das ist viel zu umfangreich, alle IP-Rages vorrätig zu haben zu prüfen,
    und bei Proxy kann die IP ja sonst wo her kommen, also "Land" ge-faked sein.

    daher meine Idee, es über die Browser-Sprache (oder Betriebssystem-Sprache) zu prüfen.
    ich will ja nicht unbedingt genau wissen woher, sondern nur ob deutsch oder nicht

    if ( SPRACHE == de ) ---> zur Seite1 --> else ---> zur Seite2

    Ideen? Tipps? Danke!


    Beitrag zuletzt geändert: 16.3.2011 17:47:58 von beeker
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. $sprache = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);


    Beitrag zuletzt geändert: 16.3.2011 17:56:21 von fabo
  4. Autor dieses Themas

    b****r

    Danke, schonmal nicht schlecht

    jetzt habe ich doch noch was mit IP-Datenbank gefunden,
    wo man nicht selber die Datenbank pflegen muss

    folgender Code beim googeln gefunden mit whois.ripe.net Abfrage ... http://www.ripe.net ...

    <?php
    // ----------------------------------------- 
    
    function LoadRipe($search_ip) { 
        $fp = fsockopen ("whois.ripe.net", 43) or die ("Ripe-Connect-Error!"); 
        fputs($fp, $search_ip."\n"); 
        while (!feof($fp)) { 
            $output[] = fgets($fp, 4096); 
        } 
        fclose($fp); 
        return $output; 
    } 
    
    // ----------------------------------------- 
    
    $usripadrr = $_SERVER["REMOTE_ADDR"]; 
    
    $testlanguage = LoadRipe($usripadrr); 
    
    // ----------------------------------------- 
    ## echo "<pre>\r\n"; 
    ## print_r($testlanguage);
    ## echo "</pre>\r\n";
    // ----------------------------------------- 
    
    foreach($testlanguage as $value) { 
     if ($ergebnis = preg_match("/country/",$value)) { echo "".$value."<br>\n"; }
    }  
    
    // ----------------------------------------- 
    ?>


    alternative Ausgabe:
    // -----------------------------------------
    $uland = $testlanguage[14];
    $uland = str_replace("country:","",$uland);
    $uland = trim($uland);

    echo "<br>".$uland."\r\n";



    stellt sich nur die Frage, ob ich diese Datenbank ohne weiteres benutzen darf ?!

    also .... ist Anfrage an die whois.ripe.net einfach so erlaubt ?!? http://www.ripe.net/data-tools
    leider werde ich aus der PDF nicht schlau und die enthält auch noch weiterführende Links ... ?!? so gut ist mein Englisch leider nicht ^^O^^

    Danke


    Beitrag zuletzt geändert: 16.3.2011 18:48:15 von beeker
  5. Ist es, jedoch ist das begrenzt und eine Überschreitung des Limits kann zur Sperrung führen. Zudem sagt das Herkunftsland nichts über die Sprache des Besuchers aus². Da bist du mit der Browsersprache wesentlich besser bedient. Zumal die Methode auch keine unnötigen Serverabfragen hin und her sendet.

    Es gibt noch die Möglichkeit einer lokalen IP2Country-Datenbank. Die ist aber aus genanntem Grunde² ebenso nutzlos.

    Beitrag zuletzt geändert: 16.3.2011 21:34:58 von fabo
  6. Kann fabo nur zustimmen,
    die Servervariable liefert hier den sichersten Wert.
    $_SERVER['HTTP_ACCEPT_LANGUAGE']

    Sollte der Nutzer dennoch eine andere Sprache sprechen,
    dann kannst du ihm ja eine Auswahlmöglichkeit von Fähnchen bieten :)
  7. hallo

    wenn ich das verwende:

    $sprache = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

    welche Werte sind dann möglich für "deutsch" ?

    also DE_DE oder gints da auch AT (Österreich) bzw. DE_AT .. usw ?
  8. Also, das was die Vorposter geschrieben haben war eine ganz einfache Selektierung nach der präferrierten Sprache.
    Dazu muss man wissen wie der Accept-Language-Header aufgebaut ist. Die Syntax dazu ist beim w3c hinterlegt und auch dort einzusehen (Accept-Language) diese sieht dann wie folgt aus:
    Accept-Language = "Accept-Language" ":"
                      1#( language-range [ ";" "q" "=" qvalue ] )
    language-range  = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
    da passt dann z.B. sowas rein
    de, en-gb;q=0.8, en;q=0.7
    de-at, de;q=0.9, en;q=0.5
    de-ch;q=0.8, de-at;q=0.8; de;q=0.6, en;q=0.5
    Dabei wird für jede mögliche Sprache eine Qualität angenommen (q=X.X) die angibt, wie sehr die Sprache bevorzugt wird, wenn diese nicht angegeben ist, dann wird 1 angenommen, für alle Sprache die nicht aufgeführt werden wird die Qualität 0 angenommen.
    Um nun noch die eigentliche Sprache korrekt angeben zu können gibt es auch hierzu eine Sprezifikation des w3c, die das Lanuage-Tag beschreibt, welches die folgende Syntax hat:
    language-tag  = primary-tag *( "-" subtag )
    primary-tag   = 1*8ALPHA
    subtag        = 1*8ALPHA
    Was heißt, dass es eine "Hauptsprache" gibt, welche durch ein Minus getrennt von deren Dialekten getrennt wird, z.B. als "Hauptsprache" de und als Dialekte at oder ch, damit sähe die syntax so aus:
    de-at, de-ch
    Und auch diese möglichen Werte sind festgelegt. Und für die "Hauptsprache" in der ISO 639-1 und für die Dialekte in der ISO-3166-1
    Damit kannst du dann auch ganz geziehlt auf die Präferenz von Sprachen und Dialekten prüfen.
    Wobei die Analyse eher hinfällig sein dürfte, oder kennst du jemanden, der tatsächlich in seinem Browser die Spracheinstellungen dazu anpasst?
    Im Firefox z.B. findet man diese Werte unter:
    (Windows ? "Extras" : "Bearbeiten") -> Einstellungen -> Inhalt -> Sprachen -> Wählen
    Und da sind die Standardseinstellungen für einen deutschen Firefox so:
    de-de,de;q=0.8,en-us;q=0.5,en;q=0.3


    Ich hoffe ich konnte helfen.

    Mit freundlichen Grüßen
  9. 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!