aDev.si

a dev is all you need

Šola HTML – Spremenljivke v programih CGI

Spremenljivke v programih CGI

Od kod procedura dobi vrednosti, ki jih je v obrazec vpisal uporabnik?Ko strežnik sproži izvajanje programa, sam dodeli vrednosti naslednjimspremenljivkam:

SERVER_SOFTWARE – ime in verzija programa, ki teče na strežniku(zapis je v obliki ime/verzija; npr.: NCSA/1.3).

SERVER_NAME – ime strežnika, njegov vzdevek ali številka IP(npr. www.sigov.si).

GATEWAY_INTERFACE – oznaka protokola in njegova verzija (zapisje v obliki CGI/verzija; npr. CGI/1.1).

SERVER_PROTOCOL – ime in verzija protokola, po katerem je prišlata zahteva (oblika zapisa: protokol/verzija; npr. HTTP/1.0).

SERVER_PORT – številka vrat na strežniku, kamor je bila poslanazahteva (navadno 80).

REQUEST_METHOD – način zahtevka (pri HTTP je to lahko npr. GET,HEAD, POST, PUT, DELETE, LINK ali UNLINK).

PATH_INFO – dodatna informacija o poti, ki jo (po želji) pošljeodjemalec.

PATH_TRANSLATED – pretvorba podatka PATH INFO, kot ga obdelastrežnik.

SCRIPT_NAME – ime programa, ki se pravkar izvaja.

QUERY_STRING – podatki, ki sledijo znaku ? za URLjem programa(to so navadno podatki za iskanje). Ta niz je treba pred uporabo še razvozlati,saj so presledki spremenjeni v znake +, nealfanumerični znaki so kodiraniv obliki %xx, kjer je xx šestnajstiška koda ASCII ustreznegaznaka, med spremenljivkami in njihovimi urednostmi je enačaj, pari spremenjivka= vrednost pa so med seboj ločeni z znakom &. Prej omenjeni programcgiparse zna opraviti vse potrebne pretvorbe, tako da zaradi tega pri delus školjčnimi procedurami nimamo težav. Tudi za druge programske jezikeso že na voljo rešitve, ki jih dobite npr. na ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/cgi

REMOTE_HOST – ime oddaljenega računalnika, ki je poslal zahtevo.

REMOTE_ADDR – številka IP oddaljenega računalnika.

AUTH_TYPE – če strežnik podpira preverjanje uporabnikov in jeprogram zaščiten, tu navedemo postopek preverjanja uporabnika.

REMOTE_USER – uporabljamo, če strežnik preverja uporabnike.

REMOTE_IDENT – uporabljamo, če strežnik preverja uporabnike(identifikacija po RFC 931).

CONTENT_TYPE – pri zahtevah, ki imajo dodatne informacije (npr.POST ali PUT), je v tej spremenljivki naveden tip podatkov.

CONTENT_LENGTH – dolžina podatkov (število bajtov), ki jih jeposlal odjemalec (pri postopku POST).

Poleg teh podatkov se med okoliške spremenljivke uvrstijo tudi dodatnipodatki iz glave (Reguest Header Fields), če jih odjemalec pošlje.Pri njih je pred imenom dodatek HTTP. Če je v imenu polja znak ť-Ť, sev imenu spremenljivke spremeni v “_”. Od strežnega programa ne zahtevamo,da bi posredoval naprej vse informacije, ki jih je dobil od odjemalca.Nekaj zgledov:

HTTP_ACCEPT – tipi podatkov, ki jih sprejme odjemalec (oblikazapisa: tip1/podtip1, tip2/podtip2…).

HTTP_USER_AGENT – program, ki ga uporablja odjemalec (oblikazapisa: program/verzija knjižnica/verzija).

HTTP_REFERER – ime datoteke, iz katere je bila klicana proceduraCGI (oziroma kakršenkoli dokument HTML). Tako strežnik izve, od kod jeodjemalec poklical proceduro, kar lahko uporabi pri beleženju dogodkovna strežniku, pri preselitvi strežnika pa opozori na zastarele povezave.

HTTP_FROM – elektronski naslov trenutnega uporabnika procedure(različni pregledovalniki se glede tega obnašajo različno in tega podatkane dobite vedno).

Konkreten zgled, iz katerega se vidi, kateri podatki so posredovaniprogramu in v kakšni obliki, je v zgoraj omenjenem dokumentu primer4. Medrazvojem dokumentov, ki s programi sproti pripravijo dokumente za vsakuporabnikov zahtevek posebej, lahko nastanejo težave, ker med preizkušanjemuporabniškega vmesnika ne moremo poganjati znotraj razhroščevalnika. Pomagamosi tako, da najprej preverimo, ali obrazec sprejme in pošlje naprej pravilnepodatke (lahko si npr. program imena-cgi, ki smo ga uporabili pri tokratnihpreizkusih, prepišete na svoj strežnik). Delovanje programa pa na strežnikupreverite tako, da podatke, ki naj bi jih vpisal uporabnik, napišete vokoliške spremenljivke in na standardni vhod (odvisno od načina prenosapodatkov (get ali post), kar bomo obdelali naslednjič).

Morebitna dodatna vprašanja o uporabi HTML, pripombe in predloge lahkopo elektronski pošti naslovite na: [email protected]

Leave a Comment

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja