php $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; switch($lang) { case "pl": header("Location: http://localhost/strona/pl"); break; default: header("Location: http://localhost/strona/wordpress"); break; } ? I wszystko niby ok, proste jak konstrukcja cepa, ALE. Kod działa w Edge, a Firefox ani Chrominium ni ch*ja. WTF?
@arct2: W ACCEPT LANGUAGE niekoniecznie dostaniesz samo === "pl" - najczęściej coś w stylu "pl-pl". Niby mało oczywiste, ale dla krajów anglojęzycznych całkiem naturalne (en-us, en-gb).
@arct2: ale tam nie ma co nie działać, no może oprócz tego headera PO wysłaniu treści, bo to jest dobry trop (przenieś cały blok php na początek pliku, sprawdź czy masz utf bez bom, itp).
@TwigTechnology: mam pewien trop. Firefox wysyła nagłówki w stylu Accept-Language: pl,en-US;q=0.5 i to powoduje uruchomienie opcji default, tyle że nie mam pomysłu jak wziąć tylko ten pierwszy język
#php
Jest oto sobie taki kod:
Hello World Script
php
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
switch($lang) {
case "pl":
header("Location: http://localhost/strona/pl");
break;
default:
header("Location: http://localhost/strona/wordpress");
break;
}
?
I wszystko niby ok, proste jak konstrukcja cepa, ALE.
Kod działa w Edge, a Firefox ani Chrominium ni ch*ja. WTF?
php
$lang = $SERVER['HTTPACCEPT_LANGUAGE'];
switch($lang) {
Weź sobie puść die($lang) to sam zobaczysz.
header
nigdy nie używasz po tym, jak coś już wydrukowałeś. Wrzuć case przed html.sprobuj tez ifami zamiast switcha
Accept-Language: pl,en-US;q=0.5
i to powoduje uruchomienie opcji default, tyle że nie mam pomysłu jak wziąć tylko ten pierwszy język