Autor Zpráva
Tomek
Profil *
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
No vsak rozd.bane je to aj na tej stranke:
<title>Rozlévané oleje | Osobní | Avanol | TopOleje.cz  - Online obchod s oleji
</title>
, takze sa nie co divit.
Tomek
Profil *
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 *
Tak co, nevíte teda někdo?
bohyn
Profil
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 *
: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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0