Előző fejezet | Tartalom | Következő fejezet

## Extrák

### Még szebb szövegek

Ha valamit nagyon szeretnénk kiemelni, akkor két lehetőségünk is van: megnövelhetjük (vagy csökkenthetjük) a betűk nagyságát, illetve átszínezhetjük őket. A kulcsszó a font.

Átméretezés:

    <font size=+3>Ez nagy.</font><font size=-3>Ez kicsi.</font>

Színezés:

    <font color=#FF0000>Ez piros.</font>

### Táblázatok

Ha sok adatot akarunk táblázatokban közölni, akkor azt régebben előre tördelt szövegként vágtuk be, most viszont van saját, igaz kicsit bonyolult megadási módja:

A táblázat a <table> jellel kezdődik és a </table> zárja. Ezen belül a sorokat a <tr>, az oszlopokat a <td> határolja el egymástól. (Ha a táblázat oszlopneveit ki akarjuk emelni, akkor <td> helyett <th> jelet használunk.) A táblázat szélességét a width= módosítóval megváltoztathatjuk, border= megadásával keretszélességet definiálunk, a táblázat celláin belül pedig az align= segítségével jobbra right, balra left, középre middle, föl top és le bottom igazíthatjuk az adatot. Lássuk a helyi focieredményeket!

    <table border=2>
    <tr><th>Hazai csapat      <th>Vendégcsapat    <th>Eredmény
    <tr><td>Baltásasszonyfa FC<td>Redvestáka TC   <td align=middle>2 : 1
    <tr><td>Rongyosi Falábúak <td>Szentkanalasi SC<td align=middle>0 : 0
    <tr><td>Macskási Vasasok  <td>Akasztódombi SE <td align=middle>1 : 3
    </table>

Nem erre találták ki, de két (vagy több) hasábos kiírást is táblázattal oldunk meg. A szöveget <table> és <td> jelekkel vezetjük be, majd a hasáb végén újabb <td> jelet szúrunk be, végül </table> jellel zárjuk. Az align= legyen top.

Kép mellé ugyanígy írhatunk, csak akkor az egyik "cellában" a kép van, a másikban a szöveg.

### Keretek

A böngésző ablakát több részre oszthatjuk frame, azaz keret definiálásával. Ekkor tulajdonképpen több különböző HTML lapunk szorong egy osztott ablakban. A megosztáshoz egy vezetőlapot kell készítenünk, amin a felosztás szerepel, valamint itt helyezhetünk el üzenetet azok számára, akik nem rendelkeznek kereteket kezelő böngészővel. Egy példa:

    <head>
    <title>Jakab ablakai</title>
    </head>

    <frameset rows="*,120">
    <frame name=fent src=alap.html>
    <frame name=lent src=menu.html>
    </frameset>

    <noframe>
    <body>
    Te sajnos nem látsz be az ablakaimon. Keress egy nagyobb verziójú "létrát"!
    </body>
    </noframe>

Azt, hogy egy kattintás után melyik ablakban jelenjen meg az új lap, a target= határozza meg. Ide kell beírni az ablak nevét, amit a name= után írtunk.

    <a target=alap href="elso.html">

### Űrlapok

Egy HTML lapot nem csak passzívan megtekinteni lehet, hanem megfelelő kiegészítésekkel szabályos kérdőívet, szavazólapot, vendégkönyvet, stb. kaphatunk, amelybe aztán be is írhatunk. Egy ilyen lap nyomógombokat, adatbeviteli mezőket, menüket tartalmazhat. A bevitt adatokat azonban a HTML keretei közt nem lehet feldolgozni, ahhoz kiegészítőprogram szükséges: vagy egy szerver oldali program, vagy egy Java alkalmazás. Ez pedig már egy másik kurzus anyaga.

### Scriptek

Bár a scriptek sem tartoznak szorosan véve a HTML-hez, egy rövid és igen gyakran használt példa erejéig mégis kitérek rá. Számlálót ugyanis nagyon sokan szeretnének a lapjukra tenni.

Mi is egy script? Röviden és DOS akcentussal ;-) -- a script a UNIX ".bat"-ja. Csakhogy sokkal többet tud. Gyakorlatilag programnak minősül. Lapunkról ilyen kis (vagy akár nagy) programok indítására van lehetőség!

A világ nem egyszerű, a scriptek meghívására is kétféle megoldást dolgoztak ki: egy elsőt és egy jót. ;-)

Az első ilyen megoldás a

#### CGI

azaz a Common Gate Interface. Ez egy "patkolás", amely beül a buta CERN httpd server és a külvilág közé, hogy a scriptre vonatkozó és a server által nem ismert utasításokat feldolgozza. Ez néhány kellemetlen jelenséggel jár. Az egyik, hogy a meghívott scriptek nem paraméterezhetők. A másik, hogy a scripteknek külön cgi-bin könyvtárban kell gyülekezniük. A scripteket el kell látni "fejlécinformációval" is.

Mindezek ellenére a CGI nagy karriert futott be, így a fejlettebb serverekbe eleve beépítettek egy ehhez hasonló, de kellemesebb lehetőséget, ez a

#### SSI

azaz Server Side Include. Itt már a script hívása egyszerűbb és kényelmesebb, s együtt maradhat az őt hívó oldallal. Ez azért jó, mert pl. a cgi-bin könyvtárra vagy kapunk írási jogot, vagy sem, de még ha kapunk is, ott mások is "nyomulnak", közös lónak meg ugye... A saját könyvtárunkban viszont nyugodtan fejleszthetünk.

A példát ez utóbbi serverhez írtam meg, mert mentes a CGI "sallangjaitól".

#### Számláló (példa)

Teendőink sorrendben:

Készítsük el counter néven az alábbi UNIX scriptet tetszésünk szerinti szövegszerkesztővel a public_html könyvtárba:

    N=`cat ./counter.$1`
    expr $N + 1 > ./counter.$1

Nagyon ügyeljünk minden egyes jelre, még a szóközökre is, mert a UNIX haragos öregúrként viselkedik, ha pontatlanok vagyunk!

A kész állományra adjunk végrehajtási jogot!

    chmod 755 counter

Készítsük el az index.html "adatlapját"!

    echo 0 > counter.index

Erre adjunk általános írási jogot, hiszen a világon mindenki belátogathat a lapunkra, növelve a számláló állását!

    chmod 666 counter.index

Végül helyezzük el az index.html-ben a számláló hívását (célszerű a legelső sorba a <head> elé):

    <!--#exec cmd="./counter index"-->

Ezzel a számláló kész és működik is, csak épp nem látjuk a lapon az eredményét. Ehhez egy újabb sort csempésszünk a lap törzsébe:

    Ezt a Jakab-féle lapot
    <!--#exec cmd="cat ./counter.index"-->
    boldogtalan elektronikus csavargó látta eddig.

A szám valóban megjelenik a szövegben, mi több a forrásban is, így aki lapunk "kéziratát" olvasgatja, az sem sejtheti, milyen csodaprogrammal értük el ezt az eredményt. Más lapokon is bevethető ugyanez a script, mivel eleve úgy íródott, hogy csak az index cserélendő le más névre a lapban a hívásnál. Persze az "adatlapokat" külön-külön el kell készíteni! És ez még csak a kezdet!...

FIGYELEM! Ez a megoldás korszerűtlenebb servereken nem működik!

#### A server rendszerváltozói

Több érdekes információt tartalmazó szabványos rendszerváltozót használnak a serverek, ezek közül emelek ki néhányat:

- $LAST_MODIFIED

  A lap utolsó módosítási dátumát tartalmazza. Ahol lényeges, hogy kövessük, mikor frissült utoljára a lap, az állandó dátumátírás helyett ennek a változónak a kiíratásával is elintézhetjük a kérdést:

      <!--#exec cmd="echo $LAST_MODIFIED"-->

- $REMOTE_HOST

  Ebben a változóban rejlik a lapunkat éppen meghívó kíváncsi "ügyfél" gépének neve (maga a felhasználó anonim marad). Sokan szívesen veszik, ha a lap "felismeri" őket, így ezt is kiírathatjuk a fenti módon.

- $DATE_LOCAL

  A mai dátum a helyi idővel együtt. Ha valaki nagyon lassúnak találja a vonalat, ezt az adatot ismerve rádöbbenhet, hogy nem munkaidőben kellene próbálkoznia... ;-) (Nem árt, ha olykor eszünkbe jut, hogy az Interneten mindig máshol van éjszaka.)

Előző fejezet | Tartalom | Következő fejezet