Autor | Zpráva | ||
---|---|---|---|
Tomek Profil * |
#1 · Zasláno: 4. 1. 2009, 01:05:32
Zdravím borci! Nevěděl by někdo náhodou, proč při kliknu na odkaz z googlu: (měl by to být hned první odkaz na topoleje.cz avanol)
http://www.google.cz/search?hl=cs&q=avanol&btnG=Hledat&lr= se znaky s diakritikou v adrese hned nerozkódují na Rozl%E9van%E9%20oleje......... ale zůstane to stejné a pak mi to na stránce při použití $_GET háže RozlĂ©vanĂ©..... Přitom odkazy kdekoli jinde fungují tak, že při kliknutí se to v adrese hned rozháže stylem Rozl%E9van%E9%20oleje a funguje to v pohodě. Zkusím to i zde: [url=http://www.topoleje.cz/index.php?act=viewcat&by=Rozlévané oleje&by2=Osobní&catname=Avanol&clr=4]http://www.topoleje.cz/index.php?act=viewcat&by=Rozlévané oleje&by2=Osobní&catname=Avanol&clr=4[/url] Mám ještě jinej obchod, kde to mám ještě ošetřený pomocí urlencode a urldecode a na googlu je to v pohodě, protože už i odkaz obsahuje znaky typu %E9 místo diakritiky. Takže je tím encodováním a decodováním, nějaká vychytávka googlu? Poraďte pls. Díky |
||
srigi Profil |
#2 · Zasláno: 4. 1. 2009, 10:54:27
No vsak rozd.bane je to aj na tej stranke:
<title>Rozlévané oleje | Osobnà | Avanol | TopOleje.cz - Online obchod s oleji </title> |
||
Tomek Profil * |
#3 · Zasláno: 4. 1. 2009, 12:04:06
Není, jen title se mění podle toho kde se právě nacházíš a bere si z $_GET. Schválně zkus když klikneš na odkaz na googlu a hodí tě to na tu "rozd.banou" stránku, tak pak jdi do adresy a dej enter a uvidíš.
|
||
Tomek Profil * |
#4 · Zasláno: 5. 1. 2009, 14:59:59
Tak co, nevíte teda někdo?
|
||
bohyn Profil |
#5 · Zasláno: 5. 1. 2009, 15:24:48
Nejspis mas (nebo jsi mel) spatne nastavene kodovani a Google to spatne zaindexoval. Pricinu z teho hlasky tezko hledat. "Provoz domény topoleje.cz byl pozastaven."
|
||
Tomek Profil * |
#6 · Zasláno: 6. 1. 2009, 00:37:31
:D Jo, majitel si zapomněl zaplatit hosting. Ale to neva, zkoušel jsem to i na jiným webu a když jsem nastavil kódování stránky utf-8, tak to fungovalo správně, ale zase se rozesrala veškerá jiná čeština, jakto jakto? :(
|
||
Tomek Profil * |
#7 · Zasláno: 6. 1. 2009, 00:58:38
Formuláře, odkazy s parametry
Pro interakci WWW stránek s uživateli se často používají HTML formuláře. Hodnoty z jejich polí lze odesílat na server dvěma různými metodami: GET a POST. Metoda GET vkládá hodnoty parametrů přímo do URL, metoda POST je posílá v těle HTTP požadavku. Z hlediska programátora PHP je práce obou metod ve většině případů shodná. Hodnoty polí formulářů jsou v PHP dostupné jednak v superglobálních polích ($_GET, $_POST, resp. jejich zavržené varianty $HTTP_GET_VARS a $HTTP_POST_VARS) a v závislosti na nastavení PHP případně také přímo jako proměnné s názvy formulářových polí (nebezpečné, nepoužívat!). Hodnoty se pro přenos kódují a po přenosu automaticky dekódují, takže jsou k dispozici v původní podobě - a tedy i znakové sadě. Problémy nastávají tehdy, když se liší kódování dokumentu s formulářem a dokumentu generovaného na základě získaných informací. Ačkoliv se to může zdát nepravděpodobné, v praxi jsem se s tím setkal už mnohokrát, a to i na jinak velmi kvalitních WWW stránkách. Stává se to nejčastěji v případech, kdy se data z formuláře odesílají na jiný stroj, než z kterého byl formulář získán - nezřídka mívají stroje různé správce. Jeden z nich pak změní nastavení kódové stránky a problém je na světě. Je třeba na to myslet a v podobných situacích postupovat systematicky, aby se pak návštěvník stránek nedivil, že se například místo "Tomáš" najednou jmenuje "Tomá+". Někdy se místo formulářů používají odkazy s parametry. Tedy namísto tvorby GET požadavku obsahujícího hodnoty polí formuláře se tyto hodnoty umístí přímo do odkazu. Většinou se to sice používá pro číselné hodnoty, ale přesto může vzniknout potřeba předávat nějaké texty. Ty je nutné vždy explicitně zakódovat (pokud se nejedná o jednoduché případy, typicky o konstantní řetězce v situacích, kdy je zjevné, že kódovat nepotřebují). K tomuto účelu slouží funkce urlencode(), která provede totéž, co vykonávají WWW prohlížeče při odesílání dat z formulářů. V PHP pak tedy získáme opět stejná data, jako kdyby se odesílala z formuláře. |
||
Časová prodleva: 15 let
|
0