jak odesφlat data na cizφ servery
Jak ud∞lat parazitnφ formulß° - P°φklad s vyhledßvaΦem - Odesφlan² dotaz - Skrytß pole - P°φpustnΘ ·pravy - Dal╣φ p°φklady - Anal²za dotazu
Jak u╛ jsem zmφnil v ·vodu do formulß°∙,
Jednφm z °e╣enφ funkΦnosti je vyu╛itφ program∙ na cizφch serverech, kterΘ um∞jφ v∞c, kterou pot°ebuji.
Formulß° se prost∞ namφ°φ na cizφ strßnku, po╣le jφ data a nechß ji zobrazit v²sledky. V²slednß strßnka pak sice nebude moje, ale bude to fungovat.
Pro nedostatek terminologie oznaΦuji takovΘ pou╛itφ formulß°∙ za parazitnφ. Nenφ to ale p°esnΘ, ve skuteΦnosti se jednß spφ╣e o symbi≤zu, proto╛e "zneu╛φvan²" server nijak neutrpφ a p°ijdou tak na n∞j novφ u╛ivatelΘ.
NejlΘpe je zkopφrovat jej. Najdu si strßnku, kterß se mi lφbφ a vezmu z nφ formulß° (nejΦast∞ji zkopφrovßnφm zdroje). V∞t╣inou se pak formulß° je╣t∞ musφ trochu upravit (hlavn∞ action).
Jin² zp∙sob je anal²za serverov²ch dotaz∙ metody get. To je spφ╣e pro pokroΦilej╣φ.
M∙j oblφben² vyhledßvaΦ je Google sφdlφcφ na adrese http://www.google.com. Zobrazil jsem si jeho zdroj a zkopφroval formulß° s tφmto HTML zßpisem (zestruΦn∞no):
<form action=/search name=f>
<input type=text value="" name=q size=55 maxlength=256><br>
<input name=btnG type=submit value="Vyhledat Googleem">
<input name=hl type=hidden value=cs></form>
Kdy╛ si tento formulß° vlo╛φm do strßnky, mßm skoro vyhrßno. Je╣t∞ jej ale trochu upravφm (a vysv∞tlφm jednotlivΘ Φßsti).
Jedinß nezbytnß ·prava spoΦφvß v namφ°enφ formulß°e na sprßvnou adresu. V p∙vodnφm formulß°i byla relativnφ adresa "/search". P∙vodnφ formulß° ale sφdlil na jinΘ adrese, tak╛e to funguje jenom z tΘ p∙vodnφ adresy. Musφ se to opravit na absolutnφ adresu; v∞t╣inou tak, ╛e se p°ed p∙vodnφ action napφ╣e umφst∞nφ p∙vodnφ strßnky (pop°. beze jmΘna souboru).
action="http://www.google.com/search"
V²sledky parazitnφch formulß°∙ se v∞t╣inou nechßvajφ otevφrat v novΘm okn∞ (nenφ podmφnkou). Do tagu form se dopφ╣e atribut target="_blank". Cel² formulß° potom bude vypadat takto:
<form action="http://www.google.com/search"
target="_blank">
<input type=text value="" name=q size=55 maxlength=256><br>
<input name=btnG type=submit value="Vyhledat Googleem">
<input name=hl type=hidden value=cs></form>
A mohlo by to fungovat. Zkuste.
Kdy╛ zadßm hledan² text (t°eba Prachatice) a zmßΦknu Enter, ode╣le se na adresu www.google.com/search dotaz, kter² je k nerozeznßnφ od dotazu, kter² by pochßzel z p∙vodnφho formulß°e:
http://www.google.com/search?q=Prachatice&hl=cs
Dotaz za otaznφkem obsahuje v╛dy dvojici jmΘno=hodnota. JmΘna se berou z atribut∙ name jednotliv²ch vstupnφch polφΦek (input∙). Hodnotou je bu∩ to, co zadal u╛ivatel, nebo p°ednastavenß hodnota (atribut value).
Pokud je pro vßs odesφlan² dotaz zßhadou, p°eΦt∞te si ·vod do formulß°∙.
Co znamenß ten °ßdek
?
<input name=hl type=hidden value=cs>
Odesφlß skrytß data. Prost∞ p°ipojφ do dotazu dvojici hl=cs. Pou╛φvß se pro hodnoty, do kter²ch u╛ivateli nic nenφ a nem∞l by je m∞nit, pro ·Φely programu jsou ale nezbytnΘ.
P°esn∞ nevφm, co znamenß to jmΘno hl a hodnota cs (asi ╛e se budou v²sledky komentovat Φesky). To ale nenφ d∙le╛itΘ, to jsem jen zkopφroval.
V∞t╣ina kopφrovan²ch cizφch formulß°∙ bude obsahovat skrytß pole, jim╛ nebudete rozum∞t. M∙╛ete je zkusit smazat a sledovat, jestli to p°estane fungovat (je to otßzka ceny va╣eho Φasu).
V∞t╣ina cizφch formulß°∙ se nap°ed musφ oΦistit od cizφho balastu. Je dobrΘ smazat tagy tabulek, pφsem a skript∙. NejlΘpe se pracuje jenom s Φistou kostrou formulß°e, kterou tvo°φ pouze tagy <form>, <input>, <select>, <textarea> (a z°φdka n∞kterΘ dal╣φ). Pokud si nejste jisti syntaxφ, nastudujte si zßpis vzhledu formulß°ov²ch polφ.
D∙le╛itΘ je pouze to, aby se n∞jak nepokazil dotaz, kter² se bude z formulß°e odesφlat.
Vyhledßvßnφ na Atlasu
Hledßnφ prßce na Jobpilot
Vyhledßvßnφ Googlem na vlastnφm serveru
SMS na Oskara
Hledßnφ na Seznamu
Proto╛e se mohou m∞nit cφlovΘ skripty, je mo╛nΘ, ╛e p°φklady Φasem nebudou funkΦnφ.
<form action="http://www.atlas.cz/search.asp"
method="get">
<input type="text" name="searchtext" size="12">
<input type="submit" value="Najdi na Atlasu" >
</form>
Mal² komentß°: vidφte, ╛e action mφ°φ na strßnku s p°φponou .asp. To je strßnka napsanß v jazyce ASP, kterß umφ zpracovßvat dotazy. Proto╛e je to ASP, tak se nedß zam∞nit method="get" na method="post" (co╛ lze zam∞≥ovat t°eba u PHP).
Name="searchtext" je velice d∙le╛itΘ zachovat, proto╛e ta asp strßnka se bude ptßt na hodnotu spojenou se "searchtext".
<form action="http://www.jobpilot.cz/job_suche/search.phtml"
method="get" target="_blank">
Prßce v Jobpilotu: <input type="text" name="keywords"
size="12" maxlenght="100">
<input type="submit" value="Hledat" >
</form>
Action nßm nynφ mφ°φ na soubor s p°φponou phtml, co╛ je PHP skript. Proto je nynφ mo╛nΘ zadat i method="post", ale u takto malΘho dotazu se to nevyplatφ.
Op∞t je nutno zachovat name="keywords", proto╛e PHP skript bude Φekat hodnotu prom∞nnΘ $query. Ve vstupnφm poli vidφme omezenφ dotazu na sto znak∙ (maxlenght=100), t°eba╛e najednou jich bude vid∞t jenom 12 (size=12).
Na strßnce pokroΦilΘho vyhledßvßnφ serveru Google se dß zvolit vyhledßvßnφ jenom v urΦitΘ domΘn∞ nebo webu. Po ·prav∞ vypadß formulß° takto:
Vyhledßvßnφ na tomto serveru: <form
action="http://www.google.com/search" target="_blank">
<input type="text" name="as_q" size=20>
<input type="hidden" name="as_sitesearch"
value="dusan.pc-slany.cz">
<input type="hidden" name="num" value="10">
<input type="hidden" name="btnG" value="Vyhledat">
<input type="submit" value="Vyhledat">
</form>
Zm∞nφte-li adresu v polφΦku as_sitesearch na fragment svΘ domΘny, m∙╛ete si takto ud∞lat vyhledßvßnφ na vlastnφm serveru. (ProblΘm je, ╛e se tam u╛ nesm∞jφ pou╛φvat lomφtka.) Podmφnkou je, aby k vßm chodil indexovat Google (je to pravd∞podobnΘ). P°enastavenφm z°ejm²ch hodnot skryt²ch polφ m∙╛ete m∞nit v²sledky; nap°. ta desφtka u num je poΦet zobrazen²ch v²sledk∙ na strßnce.
Z adresy http://sms.oskarmobil.cz/s_main.php3 jsem zkopφroval formulß°, kter² m∞l action nastavenou takto:
action="send.php3?locale=cz"
V²slednß adresa action tedy bude action="http://sms.oskarmobil.cz/send.php3?locale=cz"
Cel² formulß° po smazßnφ balastu vypadß takto:
<form name="sms"
action="http://sms.oskarmobil.cz/send.php3?locale=cz"
method="post" target="_blank">
Telefonnφ Φφslo p°φjemce: +420
<select name="predcisli" size="1">
<option value="0608" selected>608</option>
<option value="0776">776</option>
<option value="0777">777</option>
</select>
<input type="Text" name="number" size="6" maxlength="6">
<input type="hidden" name="ppp" value="100906003088924:02f897c004b89437065b1dd960c3acfe">
<br>
ZPR┴VA (bez diakritiky): <br>
<textarea name="message" cols="60" rows="8" maxlength="779"></textarea>
<br>
<input name="sb" type="submit" value="Odeslat zprßvu"> <input type="reset" value="Vymazat"
>
</form>
Ze strßnky jsem odstranil JavaSkripty, kterΘ poΦφtajφ poΦet znak∙ a esemesek. Mohly by se tam nechat a fungovalo by to. To pro v²sledek ale nenφ podstatnΘ, proto╛e si server musφ um∞t poradit i se vstupy z prohlφ╛eΦ∙, kde je JavaScript zakßzßn.
Textovß oblast se zprßvou mß nastavenu maximßlnφ dΘlku 779 znak∙, co╛ je v∞t╣inou dobrß ochrana (dß se sice zlomit, ale t∞╛ko omylem).
JedinΘ, co m∞ stra╣φ, je skrytß hodnota name="ppp" s obrovsk²m vygenerovan²m °et∞zcem. Pravd∞podobn∞ zabra≥uje zneu╛itφ formulß°e (tak╛e to mo╛nß bude hlßsit, ╛e strßnka vypr╣ela).
N∞kdy nemusφm ani chodit na strßnku s p∙vodnφm formulß°em. StaΦφ mi, kdy╛ znßm dotaz, kter² formulß° odesφlal. TakovΘ dotazy se nejΦast∞ji najdou p°i anal²ze log soubor∙ (sledovßnφ p°φstup∙). Podle nich jsem si kdysi ud∞lal vyhledßvacφ centrßlu.
http://search.centrum.cz/katalog/search.php?q=hudebn%ED+teorie
http://search.seznam.cz/search.cgi?min=l-s-c-k&w=Feynmanhttp://www.webfast.cz/search.php?q=warcraft&sec=mix&typ=std&top=0&from=21
http://search.msn.com/spbasic.htm?MT=CD%20LABELShttp://hledej.atlas.cz/fulltext.asp?query=famulus&from=41
http://google.yahoo.com/bin/query?p=frontpage+expres&hc=0&hs=0Nap°φklad ze strßnek t∞chto dotaz∙ chodφ Φtenß°i na moje strßnky.
Tak dejme tomu, ╛e ten dotaz ze Seznamu
http://search.seznam.cz/search.cgi?min=l-s-c-k&w=Feynman
p°epracuji do parazitnφho formulß°e:
<form action="http://search.seznam.cz/search.cgi"
target="_blank">
V katalogu Seznamu: <input name="w">
<input type="hidden" name="min"
value="l-s-c-k">
<input type="submit" value="Hledej!">
<form>
P°edhozφ: Detaily formulß°∙, zdokonalenφ vzhledu
Vizte tΘ╛: ┌vod do formulß°∙, Formulß°e v HTML, Slu╛by vzdßlen²ch server∙, Vyt∞╛ovßnφ strßnek, Vyhledßvacφ roboti
Obsah
Hledßnφ
Zßkladnφ kurs
Editory
HTML tipy
Provoz webu
CSS styly
Jak psßt web:
http://dusan.pc-slany.cz/internet/
Pφ╣e Yuh∙: autorova strßnka, mail: dusan@pc-slany.cz
Poslednφ aktualizace 12.01.2002