Autor | Zpráva | ||
---|---|---|---|
richard Profil * |
Ahoj, jen by mě zajímalo k čemu je $_SERVER['REMOTE_ADDR'] , když to jen zjistí ip adresu uživatele, který čte daný skript. Ale dnes už má každý doma router a ten mu přidělí ip v obvykle stejném rozsahu, bud 192.168.0.... , nebo 10.0.0..... Má tahle proměnná vůbec nějaký smyl ?
|
||
Alphard Profil |
#2 · Zasláno: 2. 8. 2014, 21:54:01
„Venku“ uvidíte vnější IP, kterou klientovi přidělí poskytovatel připojení. Lokální adresy za routerem neuvidíte, všichni uživatelé za routerem budou mít z vašeho pohledu stejnou adresu. To je nevýhoda třeba u anket.
Je možné skrývat se za různé proxy servery, někdo má mobilní připojení a jinou IP každou chvíli, jindy zase sdílí jednu IP půlka paneláku... ale to je dlouhodobý stav. IP se může stále hodit u anket, statistik přístupů, v boji se spammery, ..., ale je nutné myslet na nedostatky. |
||
mimochodec Profil |
#3 · Zasláno: 2. 8. 2014, 21:55:15
Ta IP, co píšeš, platí v lokální síti. Směrem ke zbytku internetu má ten router IP jinou, přidělenou providerem. Ta je buď neměnná (pokud má uživatel důvod a zaplatí si za to), nebo proměnlivá (mnohem častěji). Jestli má smysl s ní pracovat, to záleží na účelu. Někdy ne, někdy ano.
|
||
richard Profil * |
#4 · Zasláno: 2. 8. 2014, 22:07:06
Ale ne všichni poskytovatelé dávají veřejnou ip? Čili, je možné vůbec pomocí $_SERVER['REMOTE_ADDR'] určit polohu země, abych mohl zvolit vhodný jazyk pro mutaci?
|
||
Alphard Profil |
#5 · Zasláno: 2. 8. 2014, 22:22:40
Jak nástřel to je možné. Lepší je vyjít z toho, co vám v requestu pošle prohlížeč. A určitě nechat uživatelům možnost to změnit.
|
||
Joker Profil |
#6 · Zasláno: 2. 8. 2014, 22:24:16
richard:
„je možné vůbec pomocí $_SERVER['REMOTE_ADDR'] určit polohu země, abych mohl zvolit vhodný jazyk pro mutaci?“ Teoreticky s nějakou nepřesností ano, ale lepší bude použít hlavičku Accept-Language, ta přímo říká, jaký jazyk(y) by prohlížeč chtěl. |
||
richard Profil * |
#7 · Zasláno: 2. 8. 2014, 22:49:14
Prohlížeš si sám řekne jaký jazyk? Co když jsem z ČR a mám stáhnutou operu z anglického serveru? Můžeš mi to prosím tě ukázat v kódu, to zpracování Accept-Language. Ještě jsem o tom neslyšel a nikde jsem nic konkretního nevyčetl.
|
||
Jan Tvrdík Profil |
#8 · Zasláno: 2. 8. 2014, 22:59:51
richard:
„Můžeš mi to prosím tě ukázat v kódu, to zpracování Accept-Language“ Viz např. metoda detectLanguage v Nette. |
||
Joker Profil |
#9 · Zasláno: 3. 8. 2014, 08:11:54
richard:
„Co když jsem z ČR a mám stáhnutou operu z anglického serveru?“ Přece nezáleží odkud je stažený prohlížeč, ale jaký je v něm nastavený preferovaný jazyk (v Opeře: Nastavení, na záložce Obecné dole se nastavuje jazyk prohlížeče a po kliknutí na tlačítko Podrobnosti se dají nastavit upřednostňované jazyky webových stránek). |
||
richard Profil * |
#10 · Zasláno: 3. 8. 2014, 10:09:47 · Upravil/a: richard
Jo, máš pravdu. Takže stačí jen použít v php funkci detectLanguage, tá si sama zpracuje accept-language vyhodí jazyk, který bych měl nastavit.
Můžeš mi ukázat jak má vypadat ta hlavička s accept-language? nějak takhle Accept-Language = "Accept-Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] ) language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" ) |
||
juriad Profil |
#11 · Zasláno: 3. 8. 2014, 10:14:31
Podle specifikace takto:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 O tu hlavičku se stará prohlížeč, ty si jen někde v nastavení naklikáš preferované jazyky. |
||
richard Profil * |
#12 · Zasláno: 3. 8. 2014, 10:44:00
No dobře, o hlavičku se postará prohlížeč, uživatel si zvolí jazyky, ale pak to musím nějak zpracovat v kódu, aby se přepsal jazyk z anglického, třeba na španělský, není to tak?
|
||
juriad Profil |
#13 · Zasláno: 3. 8. 2014, 10:46:23
Ano, třeba ta odkázaná funkce v [#8] ti vrátí nejvhodnější jazyk. Pak je na tobě jak s touto informací naložíš.
Překlad můžeš řešit bambilionem způsobů. Záleží na tom, jak je web navržený a jaké technologie používá. |
||
richard Profil * |
#14 · Zasláno: 3. 8. 2014, 12:09:30
ok, dík.
A co vložím do parametru detectLanguage(array $langs) $langs ? |
||
juriad Profil |
#15 · Zasláno: 3. 8. 2014, 12:13:44
Seznam jazyků, které tvá stránka podporuje. Spíš se tvou funkcí inspiruj, řádek 321 budeš muset změnit.
|
||
richard Profil * |
#16 · Zasláno: 3. 8. 2014, 12:37:09
Změnit na co? Já měl za to, že to je ten stěžejní řádek celé funkce.
|
||
aDAm Profil |
#17 · Zasláno: 4. 8. 2014, 07:47:28
Jen tak na okraj pokud nepoužíváš nette tak ti samozřejmě ta metoda detectLanguage zavolat nepůjde neb ji tvoje appka nebude zřejmě znát ;) Tohle máš brát pouze a jen jako ukázku jak by se to dalo řešit.
|
||
Časová prodleva: 10 let
|
0