quote:Op vrijdag 8 december 2006 22:51 schreef mvc het volgende:
[..]
Oké, zou je hier misschien een voorbeeld van kunnen geven ? ik heb hier namelijk zeer weinig kaas van gegeten :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | if ($_SERVER['REQUEST_METHOD']=='POST'){ $password=md5($_POST['password']); $query='SELECT * FROM user WHERE username="'.$_POST['username'].'" && pass="'.$password.'"'; $result=mysql_query($query); $row=mysql_fetch_assoc($result); if(mysql_num_rows($result) != 0){ session_start(); $_SESSION['admin_IP']=$_SERVER["REMOTE_ADDR"]; $_SESSION['admin_login']='ok'; header("Location: ingelogged.php"); }else{ header("Location: fout.php"); } } ?> |
Je zou kunnen kijken naar de Accept-* headers die veel browsers naar de webserver sturenquote:Op zaterdag 9 december 2006 17:50 schreef qu63 het volgende:
iemand enig idee hoe ik dmv php de juiste taal voor mn website kan pakken? (NL/FR/EN)
die?quote:Op zaterdag 9 december 2006 18:06 schreef JeRa het volgende:
[..]
Je zou kunnen kijken naar de Accept-* headers die veel browsers naar de webserver sturen :)
1 2 3 | echo $_SERVER['HTTP_ACCEPT_LANGUAGE']; ?> |
1 |
Juist. Je moet dan alleen nog even goed voor ogen hebben hoe je de gebruiker een taal voorschotelt. Bijvoorbeeld zo:quote:Op zaterdag 9 december 2006 18:13 schreef qu63 het volgende:
[..]
die?
[ code verwijderd ]
output:
[ code verwijderd ]
Standaard taal is Engels, als de gebruiker Nederlands of Frans ingesteld heeft wordt het die taal, anders Engels.quote:Op zaterdag 9 december 2006 18:26 schreef JeRa het volgende:
[..]
Juist. Je moet dan alleen nog even goed voor ogen hebben hoe je de gebruiker een taal voorschotelt. Bijvoorbeeld zo:
1) Als de gebruiker een taal zelf heeft gekozen (bv. opgeslagen in cookie) dan wordt die taal gebruikt
2) Als er nl, fr of en (in die volgorde) in de Accept-Language-header voorkomt, dan wordt die taal gebruikt
3) De standaard taal (Engels?) wordt gebruikt
Zou ik niet doen, de volgorde van detecteren zoals ik die aangaf zal denk ik wel voldoen aan je wensen. In PHP dus.quote:Op zaterdag 9 december 2006 18:52 schreef qu63 het volgende:
[..]
Of kan ik dan beter via JavaScript de taal detecteren en opslaan
gaan we daar iets leuks op verzinnenquote:Op zaterdag 9 december 2006 18:55 schreef JeRa het volgende:
[..]
Zou ik niet doen, de volgorde van detecteren zoals ik die aangaf zal denk ik wel voldoen aan je wensen. In PHP dus.
hoe kan ik die Accept_Language-string nou makkelijk strippen en alleen de nodige info uit halenquote:Op zaterdag 9 december 2006 18:59 schreef qu63 het volgende:
[..]
gaan we daar iets leuks op verzinnen
Eerste tip:quote:Op zaterdag 9 december 2006 19:02 schreef qu63 het volgende:
[..]
hoe kan ik die Accept_Language-string nou makkelijk strippen en alleen de nodige info uit halen :?
1 |
ik had deze al:quote:Op zaterdag 9 december 2006 19:30 schreef JeRa het volgende:
[..]
Eerste tip:
[ code verwijderd ]
De tweede tip mag je zelf verzinnen ;)
1 2 3 | preg_match_all('/^([a-zA-Z]{2})/', $al, $matches); echo $matches[0][0]; |
explode op ";" zal ook niet gaan, want dan krijg ik "nl,en-us" terug ipv "nl"quote:Op zaterdag 9 december 2006 19:30 schreef JeRa het volgende:
[..]
Eerste tip:
[ code verwijderd ]
De tweede tip mag je zelf verzinnen
quote:Op zaterdag 9 december 2006 19:42 schreef qu63 het volgende:
[..]
explode op ";" zal ook niet gaan, want dan krijg ik "nl,en-us" terug ipv "nl"
Bron: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlquote:For example,
Accept-Language: da, en-gb;q=0.8, en;q=0.7
would mean: "I prefer Danish, but will accept British English and other types of English."
ik heb er nu dit van gemaakt:quote:Op zaterdag 9 december 2006 19:59 schreef JeRa het volgende:
[..]
[..]
Bron: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Oftewel, voor stap 2 van mijn plan zou je die string kunnen splitten op een komma, en vervolgens alle elementen aflopen en het eerste dat je kunt serveren gaat gebruiken als taal :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | if (isset($_COOKIE["lang"])) { $lang = $_COOKIE["lang"]; } else { preg_match_all('/^([a-zA-Z]{2})/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); switch ($matches[0][0]) { case nl: $lang = nl; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; case en: $lang = en; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; case fr: $lang = fr; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; default: $lang = en; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; } }; ?> |
Wat nou als de eerste opgegeven taal niet op jouw site kan worden weergegeven, maar de tweede of derde wél?quote:Op zaterdag 9 december 2006 20:06 schreef qu63 het volgende:
[..]
ik heb er nu dit van gemaakt:
[ code verwijderd ]
1 2 3 4 5 6 7 | $languages = explode(',', $parts[0]); foreach ($languages as $lang) { // Loop over talen totdat je iets kunt gebruiken } |
ik laat het nu nog even zo staan, eerst moet het werken, daarna pas finetunenquote:Op zaterdag 9 december 2006 20:08 schreef Breuls het volgende:
Centraliseer je setcookie() nog even, dat scheelt code.
quote:Op zaterdag 9 december 2006 20:08 schreef JeRa het volgende:
[..]
Wat nou als de eerste opgegeven taal niet op jouw site kan worden weergegeven, maar de tweede of derde wél?
daar was ik al mee bezig jaquote:Op zaterdag 9 december 2006 20:11 schreef JeRa het volgende:
[..]
Zie mijn edit voor een simpel stukje code waarmee je het (bijna) altijd goed kunt aanpakken
Kijk eens goed naar de quote die ik aanhaal in deze postquote:Op zaterdag 9 december 2006 20:18 schreef qu63 het volgende:
[..]
daar was ik al mee bezig ja
maar dan vind ie dus "nl" maar ook "en"
dan een prio-lijstje ofzo
foreach ($languages as $lang)quote:Op zaterdag 9 december 2006 20:21 schreef JeRa het volgende:
[..]
Kijk eens goed naar de quote die ik aanhaal in deze post
Doe het met een lijstje met talen die je ondersteunt:quote:Op zaterdag 9 december 2006 21:01 schreef qu63 het volgende:
[..]
foreach ($languages as $lang)
{
if($lang == "nl"||"en"||"fr")
}
:?
1 2 3 4 5 6 7 8 9 10 11 | foreach ($languages as $lang) { $lang = substr($lang, 0, 2); if (in_array($lang, $availableLanguages)) { break; // uit de loop } } echo $lang; |
quote:Op zaterdag 9 december 2006 21:13 schreef JeRa het volgende:
[..]
Doe het met een lijstje met talen die je ondersteunt:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $parts = explode(';', $_SERVER['HTTP_ACCEPT_LANGUAGE']); $languages = explode(',', $parts); $availableLanguages = array('en', 'fr', 'nl'); foreach ($languages as $lang) { $lang = substr($lang, 0, 2); if (in_array($lang, $availableLanguages)) { break; // uit de loop } echo $lang; } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |