Ötödik fejezet. Függvények és eljárások. Eljárások (szubrutinok) deklarálása. Változók élettartama



Hasonló dokumentumok
Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

HTML alapok 1. Minimális HTML file: <HTML> <HEAD> <TITLE> cím </TITLE> </HEAD> <BODY>... </BODY> </HTML> Formátum parancsok:

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

S z á m í t ó g é p e s a l a p i s m e r e t e k

PHP-MySQL. Adatbázisok gyakorlat

Szkriptnyelvek. 1. UNIX shell

BASH script programozás II. Vezérlési szerkezetek

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Internet technológiák

Programozás II. 2. Dr. Iványi Péter

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

HTML ÉS PHP ŐSZI FÉLÉV

Adatbáziskezelés. SQL parancsok. Függvények

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

BASH SCRIPT SHELL JEGYZETEK

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

1. Alapok. #!/bin/bash

A GroupWise WebAccess Alapillesztőfelület

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

AWK programozás, minták, vezérlési szerkezetek

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

A JavaScript főbb tulajdonságai

Javacript alapismeretek

8. Mezőutasítások. Schulcz Róbert 8. Mezőutasítások. v

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Algoritmizálás és adatmodellezés tanítása 1. előadás

Szövegek C++ -ban, a string osztály

Occam 1. Készítette: Szabó Éva

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás C++ -ban 2007/1

Webprogramozás szakkör

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Forráskód formázási szabályok

ELTE SAP Excellence Center Oktatóanyag 1

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

PHP. Adatbázisok gyakorlat

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Multimédia 2017/2018 II.

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Programozás és adatbázis kezelés PHP ben

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

A közép-európai nyelvekhez igazított funkciók Tartalom

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Regionális forduló november 18.

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

AWK programozás Bevezetés

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

Információs technológiák 2. Gy: CSS, JS alapok

dr.xlsx A programról Szövegműveletekhez használható függvények

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján

Web programozás. 3. előadás

Programozás C és C++ -ban

HTML alapok. A HTML az Internetes oldalak nyelve.

Programozási nyelvek (ADA)

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Számológép. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

AWK programozás, minták, vezérlési szerkezetek

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programozás alapjai. 5. előadás

Készítette: Nagy Tibor István

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Java II. I A Java programozási nyelv alapelemei

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Programozás alapjai 8.Gy: Program struktúra

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A PiFast program használata. Nagy Lajos

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Kézikönyv. Szelekciós operátorok használata

Programozás I gyakorlat

Delphi programozás I.

A programozás alapjai

C programozási nyelv

Szkriptelési feladat megoldása

Programozás alapjai. 7. előadás

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

Szkriptnyelvek II. Perl programok

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

INFORMATIKAI ALAPISMERETEK

Átírás:

Ötödik fejezet Függvények és eljárások Eljárások (szubrutinok) deklarálása Függvények Változók élettartama Kiszolgálóoldali beágyazások (Server Side Include, SSI) A VBScript beépített függvényei A felhasználói adatbevitel elemei: A HTML-űrlapok (FORM-ok)

ASP kézikönyv Függvények és eljárások A függvények és eljárások olyan scriptutasítások csoportját jelentik, amelyek a program többi részétől jól elkülöníthetőek és névvel hivatkozhatunk rájuk. Ezt a hivatkozást eljárás illetve függvényhívásnak nevezzük. A hivatkozás tehát nem más, mint az eljárás vagy a függvény utasításainak végrehajtását jelenti minden egyes helyen, ahol azt meghívtuk. Függvények és eljárások használatával lehetőségünk nyílik ismétlődő programrészletek megadására. Ezért bárhol, ahol ezekre a scriptutasításokra szükség van, csak a függvény vagy az eljárás nevét kell ismételten megadnunk. Az eljárás és függvény közti különbség: Az eljárás abban különbözik a függvénytől, hogy nincsen visszatérési értéke. Akkor használunk függvényeket, ha olyan eljárásra van szükségünk, amelynek valamilyen visszatérési értékkel kell rendelkeznie. Ha egy ASP oldal nem tartalmaz függvényt vagy eljárást, az ASP parancsvégrehajtója egyszerűen feldolgozza a fájlt az elejétől a végéig. A függvényeket és eljárásokat a program csak akkor hajtja végre, ha az adott eljárást vagy függvényt meghívjuk. Ha egy függvénynek vagy eljárásnak bemeneti információkat szeretnénk adni, akkor azt paraméterként kell megadnunk, úgy, hogy a változót a függvény vagy az eljárás neve után zárójelbe írjuk. Ha több bemeneti paraméterrel is rendelkezik egy eljárás vagy függvény, akkor a változókat egymástól vesszővel elválasztva kell megadnunk. Eljárások (szubrutinok) deklarálása Ejárásokat a következőképpen definiálhatunk: 58

Ötödik fejezet Sub eljárásnév ([paraméterek]) utasítások [feltétel] [Exit Sub] End Sub Az eljárást a Call eljárásnév utasítással, vagy csak egyszerűen az eljárás nevével lehet meghívni. Ha valamilyen esemény hatására az eljárás végrehajtását szeretnénk félbeszakítani, akkor azt az Exit Sub paranccsal tehetjük meg. Lássunk egy egyszerű példát eljárásra. (sub.asp) <BODY> <HTML> <% Dim txt, i txt = "Helló!" 'Első eljárás definiálása Sub Write() Response.Write txt & "<br>" End Sub 'Második eljárás definiálása Sub Repeat() For i=1 to 5 Write 'Write eljárás hívása Next End Sub 'Eljárás meghívása Repeat() %> </BODY> </HTML> A példaprogramban két eljárást definiáltunk. Az első eljárásnak mindössze az a feladata, hogy a "Helló!" szöveget kiírja és sort emeljen. A második eljárás pedig meghívja ötször a kiíró (Write) eljárást. 59

ASP kézikönyv Függvények Function függvénynév ([paraméterek]) utasítások [feltétel] [Exit Function] függvénynév=érték End Function Ahogyan korábban említettem, a függvény abban különbözik az eljárástól, hogy van visszatérési értéke. A függvény visszatérési értékét úgy tudjuk definiálni, hogy a függvényen belül valahol egyenlővé tesszük a függvénynevet valamilyen változóval vagy más függvény visszatérési értékével. (Ez az érték bármilyen típusú lehet.) Nézzünk egy példát függvényhívásra: (func.asp) <BODY> <HTML> <% Dim a, b 'Fgv. definiálása Function Calculate(a,b) Calculate = a + b End Function 'Fgv. hívása bemenő paraméterekkel Response.Write Calculate(5,10) %> </BODY> </HTML> Bonyolítsuk a feladatot egy harmadik paraméter megadásával: (func2.asp) <HTML> <BODY> <% 'Fgv. definiálása három paraméterrel Function Calculate(a,b,op) 60

Ötödik fejezet Select Case op Case "+" Calculate=a+b Case "-" Calculate=a-b Case "*" Calculate=a*b Case "/" Calculate=a/b Case Else Response.Write ("Nem értelmezhető műveleti jel!") End Select End Function %> A és B Összege: <%=Calculate(10, 5,"+")%><br> A és B Különbsége: <%=Calculate(10, 5,"-")%><br> A és B Szorzata: <%=Calculate(10, 5,"*")%><br> A és B Hányadosa: <%=Calculate(10, 5, "/")%><br> </BODY> </HTML> Változók élettartama A változók élettartalmát tekintve kétféle típust tudunk megkülönböztetni: Globális változókat a függvényen vagy eljáráson kívül kell deklarálni. Általában ezeket a script vagy utasításcsoport elején szokták a könnyebb áttekinthetőség miatt. Lokális változókat egy-egy függvényen vagy eljáráson belül alkalmazunk. Ezekre a változókra csak a függvényen illetve eljáráson belül hivatkozhatunk, ezért ezek élettartalma csak az eljárás vagy függvény végéig tart. A globális változók értékét bármely ASP-lapon lévő scriptparancs használhatja vagy módosíthatja. Ha egy scriptben globális és lokális változókat is használunk, figyeljünk arra, hogy egy globális változó neve ne egyezzék meg egy lokális változó nevével. Két külön függvényben vagy eljárásban már megengedett két azonos nevű változó használata. Megjegyzés: a változó hatókörének az adott eljárásra történő korlátozásával javul a teljesítmény, ezért érdemes használni. 61

ASP kézikönyv Kiszolgálóoldali beágyazások (Server Side Include, SSI ) Az ASP-ben történő fejlesztéseknél a kódok modularitása és újrafelhasználhatósága döntő fontosságú lehet. Ha minden.html vagy.asp lapban szeretnénk azonos szövegfájlt, képeket vagy függvényeket használni, akkor az ASP biztosítja a kiszolgálóoldali beágyazás lehetőségét. Ilyenkor ha valamit módosítani szeretnénk, akkor azt elegendő egyetlen fájlban megtennünk, és nem szükséges minden egyes lapot külön-külön kijavítanunk. A fájlbeágyazás szintaxisa a következő: <!-- #include elérési_út_típusa="fájlnév" --> Az elérési_út_típusa paraméter egy kulcsszót tartalmaz, ami a FILE vagy VIRTUAL lehet. FILE esetében az include direktívát tartalmazó dokumentumot tároló könyvtár relatív elérési útját tartalmazza. Ilyenkor a beágyazott fájl csak a vele azonos könyvtárban vagy egy alkönyvtárában lehet, de nem lehet az inculde direktívát tartalmazó oldalnál magasabb szintű könyvtárban. VIRTUAL esetében a fájl a webhely virtuális könyvtárában lévő teljes virtuális elérési utat jelenti. A beágyazandó fájloknak elvileg bármilyen kiterjesztést lehet adni, de tanácsos az.inc kiterjesztést használni. Nézzünk mindkét beágyazási módszerre egy-egy példát. A beágyazott fájl a szülőfájllal azonos könyvtárban található: <!-- #include file = "adat.inc" --> A beágyazott fájl a data virtuális könyvtárban található: <!-- #include virtual = "/data/adat.inc" --> 62

Ötödik fejezet Figyeljünk arra, hogyha egy ASP-script által beágyazott fájl nagy mennyiségben tartalmaz olyan függvényeket és változókat, amelyeket a beágyazó script éppen nem használ, akkor a nem használt szerkezetek által lefoglalt erőforrástöbblet hátrányosan befolyásolhatja a teljesítményt. Ezért tanácsos a beágyazandó fájlokat felbontani kisebb fájlokra, és csak azokat beágyazni, amelyekre a kiszolgálóoldali scriptnek valóban szüksége van. Esetenként szükséges lehet egy kiszolgálóoldali script beágyazása a <SCRIPT>..</SCRIPT> HTML-kódok segítségével. Az alábbi script például olyan fájlt ágyaz be (relatív elérési út segítségével), amit a kiszolgáló hajthat végre: <SCRIPT LANGUAGE="VBScript" runat="server" src="utils\data.inc"></script> A VBScript beépített függvényei A programozási munka megkönnyítése céljából a VBScript előre "beépített" függvényeket bocsát a rendelkezésünkre, amelyek közvetlenül használhatóak általános programozási feladatokhoz. A függvények többsége hasonlít más programozási nyelvek standard függvénytáraiban megtalálható függvényekhez. Ilyen beépített függvényekkel már találkoztunk az előző fejezetekben. (pl. now, date, formatdatetime). Az alábbi táblázat további hasznos beépített függvényeket sorol fel. Függvény neve Feladata Abs (szám) A kifejezés abszolút értékét adja vissza. Asc (sztring) A karakterlánc első karakterének ASCII kódját adja vissza. Atn (szám) A kifejezés árkusz tangensét adja vissza. cbool (szám) Boolean értékké alakít át egy változót. cbyte (szám) Egy 0..255 tartományban lévő számot bájtértékké alakít át. 63

ASP kézikönyv cdbl (szám) Egy számot duplapontosságú lebegőpontos értékké alakít át. Chr (karakter) Egy karakter ASCII kódját adja vissza. cint (szám) Számot integer (egész) értékké alakít át. CLng (szám) Számot hosszú integerré alakít át. Cos (szám) Radiánban megadott szög koszinuszát adja vissza. csng (szám) Egy számot egyszeres pontosságú lebegőpontos értékké alakít át. cstr (szám) Sztring formátummá konvertál egy számot. DateSerial (év,hó,nap) Az aktuális dátumhoz viszonyított dátumot adja vissza. DateValue (dátum) Olyan formátumba alakítja át a dátumot, amely az összehasonlításoknál jobban használható. Erase Törli egy tömb tartalmát. Fix (szám) Visszatér egy szám egész értékével. Hex (szám) Hexadecimális formátumba alakít egy számot. Int (szám) Szám egész részét adja vissza. instr ([x],s1,s2 Visszatér a második string előfordulási [hasonlítás]) pozíciójával. s1: Egész karkterlánc, amelyben keresünk (kötelező megadni) s2: Keresendő karakterlánc (kötelező megadni) x: Keresés kezdő pozíciója (opcionális) hasonlítás: Egy számérték (opcionális). Ha 0, akkor bináris összehasonlítás, ha 1, akkor szövegszintű összehasonlítás. isarray (változó) Igaz értéket ad vissza, ha az adott változó tömb. Ellenkező esetben hamis értékkel tér vissza. isdate (változó) Visszatér egy logikai változóval, amely igaz, ha a változó dátum típusú. isempty (változó) Igaz értéket ad vissza, ha az adott változó még nem lett inicializálva, ellenkező esetben hamis lesz az értéke 64

Ötödik fejezet isnull (változó) isnumeric (változó) IsObject (változó) Join (tömb) Lcase (sztring) Left (sztring, n) Len (sztring) Ltrim (sztring) Mid (sztring, start [hossz]) Oct (szám) Right (sztring, n) Rtrim (sztring) Round (szám) Sgn (szám) Sin (szám) Igaz értéket ad vissza, ha az adott változó értéke nulla, ellenkező esetben hamis értékkel tér vissza. Igaz értéket ad vissza, ha az adott változó numerikus értéket tartalmaz, ellenkező esetben hamis értékkel tér vissza. Igaz értéket ad vissza, ha az adott változó objektumnak felel meg. Egy tömbben szereplő adatokat fűz egybe. Kisbetűsre alakít egy karakterláncot. Karakterlánc részláncát adja vissza; a részlánc a karakter bal szélén kezdődik és n karakterből áll. Visszatér a sztring hosszával. Levágja egy karakterlánc bal széléről a vezető szóközöket, és az így kapott részláncot adja vissza. A karakterlánc belsejében lévő részláncot adja vissza. sztring: Az egész karakterlánc (kötelező megadni) start: Egy szám, honnantól kezdve (kötelező megadni) hossz: Egy szám (opcionális), milyen hosszú karakterláncot adjon vissza. Oktális formátumba alakít egy karakterláncot. Karakterlánc részláncát adja vissza; a részlánc a karakterlánc job szélén kezdődik és n karakterből áll. Levágja egy karakterlánc jobb széléről a vezető szóközöket, és az így kapott részláncot adja vissza A kapott számot tizedes egész számmá alakítja. Adott érték előjelét adja vissza. (-1, ha negatív, 0 ha nulla, és 1, ha pozitív) Radiánban megadott szög szinuszát adja vissza. 65

ASP kézikönyv Space (szám) Visszatér n darab space (szóköz) karakterből álló sztringgel. Sqr (szám) Adott érték négyzetgyökét adja vissza. StrComp (s1, s2 [hasonlítás]) Két sztringet (s1 és s2) hasonlít össze. Visszatérő értéke: 1 ha s1<s2, 0 ha egyenlőek, -1 ha s1>s2 hasonlítás: egy szám (opcionális), 0=bináris, 1=szöveg szintű összehasonlítás. StrReverse (sztring) Visszafelé írja ki a paraméterként megadott sztringet. String (szám, karakter) Olyan karkketerláncot ad vissza, amely az adott karaktert n-szer tartalmazza. Tan (szám) Radiánban megadott szög tangensét tartalmazza. TimeSerial (óra,perc,msp) Az aktuális időhöz viszonyított időt adja vissza. TimeValue (idő ) Olyan formátumba alakítja az időt, amely az összehasonlításoknál jobban kezelhető. Trim (sztring) Levágja egy karakterlánc elejéről és a végéről a szóközöket, és az így kapott karakterláncot adja vissza. Ucase (sztring) Nagybetűssé alakít egy sztringet. VarType (változó) A változó típusát jelző értéket adja vissza. A felhasználói adatbevitel elemei: A HTMLűrlapok (FORM-ok) A HTML-űrlapok használata a webalapú információk bevitelének leggyakoribb módja. Olyan speciálisan elrendezett HTML-kódokat tartalmaznak, amelyek a felhasználói felület elemeit a weblapon jelenítik meg. Ezek az elemek (szövegmezők, gombok, jelölőnégyzetek stb.) teszik lehetővé a weblapok interaktív használatát, valamint adatok továbbítását a webkiszolgálónak. Ilyenkor a HTML-oldalon belül az egyes elemeket összefogjuk egy-egy FORM-ba és ezt küldjük el az adatfeldolgozást végző alkalmazásnak. 66

Ötödik fejezet Az FORM (űrlap) leggyakrabban használt deklarációja a következő: <FORM name="formnév" action="fájlnév/url" method="post/get">... Elemek... </FORM> Megfigyelhető, hogy három jellemzőt kell megadnunk egy űrlapnak: 1. Name: Ezzel a névvel hivatkozhatunk rá, amennyiben kliensoldali scriptekkel szeretnénk megváltoztatni az elemek értéket vagy tulajdonságait. 2. Action: Az Action kulcsszó után annak a fájlnak vagy URL-címnek a nevét kell megadni, amellyel szeretnénk feldolgoztatni az űrlap által küldött információ(ka)t. 3. Method: A method jellemző után definiálhatjuk, hogy milyen formátumban szeretnénk az action részben megadott fájlnak továbbítani az adatokat. Ilyenkor kétféle lehetőség közül választhatunk: POST vagy GET. A POST esetében a Request.Form("elemnév") metódussal, GET esetén a Request.Querystring("elemnév") metódussal tudjuk elérni a továbbított információt. Utóbbi esetben a hivatkozási fájl neve kiegészül a formok elemeinek megfelelő értékeivel az alábbiak szerint. adat.asp?elem1=érték1&elem2=érték2&... Ha hosszú és összetett űrlapok webkiszolgálóhoz történő továbbítására a GET metódust alkalmazzuk, akkor az az adatok elvesztését okozhatja. Egyes webkiszolgálók ugyanis korlátozhatják az URL-lekérdezés karakterláncának hosszát, így a GET metódussal továbbított terjedelmes űrlapadatokat megcsonkíthatják. Ezért ha nagy mennyiségű adat továbbítása szükséges, akkor indokolt a POST metódust használata. Nézzünk meg azokat az elemeket, amelyeket használhatunk a Form-on belül: 67

ASP kézikönyv Form elemek: <INPUT type="text" name="szoveg"> <TEXTAREA name="szovegdoboz" rows="magasság" cols="szélesség"> </TEXTAREA> <INPUT type="hidden" name="rejtett"> <INPUT name="jelszo" type="password"> <INPUT name="ellenorzo" type="checkbox" [value="érték"]> <INPUT name="valaszto" type="radio"> <SELECT name="valaszto" [size="érték"]> <OPTION [selected] value="érték1"> név1 </OPTION> <OPTION value="érték2">név2</option >... </SELECT> Jelentésük: Szöveges beviteli mező. Szövegdoboz, text típusú szövegek tárolására. Rejtett beviteli mező. Szöveges beviteli mező, de a bevitt szöveg karakterei helyett * (csillag) jelenik meg. Ellenőrző mező, amely on értéket ad vissza, ha be van jelölve. Ha opcionálisan adunk meg értéket, akkor ezt az értéket adja vissza, ha a bekapcsolt állapotban van. Választógomb. Legördülő választódoboz, ahol az option kifejezéssekkel adhatunk újabb mezőt a meglévőekhez. A value="érték n " kerül elküldésre, ha valamelyik mezőt kiválasztottunk. Az option után írt "név" jelenik meg a dokmentumban. Az alapértelmezettként kiválasztott mezőt a "selected" kifejezés jelzi. Ha opcióként a size értékét is megadjuk, akkor beállítható, hogy hány sora legyen a választódoboznak. 68

Ötödik fejezet <INPUT name="elkuld" type="submit"> <INPUT name="torol" type="reset"> Egy Submit gomb, amely lenyomására az adatokat lehet elküldeni. Reset gomb, ha lenyomjuk minden kitörlődik, amit eddig az űrlapba írtunk. Készítsünk egy olyan űrlapot (form.htm), amely bekéri a felhasználó kereszt-és vezetéknevét és életkorát. Választógomb segítségével kérjük be a felhasználó nemét (férfi vagy nő), majd egy legördülő listából válasszuk ki a kedvenc színét. A Submit (küldés) gomb megnyomására, az adatokat küldjük el egy másik oldalnak (form.asp), amely kiírja a kapott adatokat. Az űrlapon legyen egy Reset (törlés) gomb is. Az form.htm forráskódja: <HTML> <BODY> <FORM name="urlap" action="form.asp" method="post"> <table border=1 cellpadding=0 cellspacing=0> <tr> <td>vezetékneve:</td> <td><input type="text" name="surname"></td></tr> <tr> <td>keresztneve:</td> <td><input type="text" name="firstname"></td></tr> <tr> <td>kora:</td> <td><input type="text" name="age"></td></tr> <tr> <td>neme:</td> <td>férfi<input name="rd" type="radio" value="férfi"> <br>nő<input name="rd" type="radio" value="nő"> </td> </tr> <tr> <td>érdeklődési köre:</tdd> 69

ASP kézikönyv <td>számítógép<input name="cbox1" type="checkbox" value="igen"> <br>könyv<input name="cbox2" type="checkbox" value="igen"> <br>zene<input name="cbox3" type="checkbox" value="igen"> <br>autók<input name="cbox4" type="checkbox" value="igen"> <br>sport<input name="cbox5" type="checkbox" value="igen"> </td> </tr> <tr> <td>kedvenc színe:</td> <td><select name="colour"> <option selected value="piros">piros</option> <option value="kék">kék</option> <option value="zöld">zöld</option> <option value="sárga">sárga</option> <option value="fekete">fekete</option> <option value="fehér">fehér</option> </select></td> </tr> <tr> <td>megjegyzés:</td> <td> <textarea name="comment" rows="4" cols="20"> </textarea></td></tr> <tr> <td>töröl:</td> <td><input name="reset1" type="reset" value=reset(töröl)></td></tr> <tr> <td>elküld:</td> <td><input name="submit1" type="submit" value=submit(elküld)></td></tr> </table> </FORM> </BODY> </HTML> 70

Ötödik fejezet A form.asp forráskódja: <HTML> <BODY> Az elküldött értékek: <br> <% 'A Reguest.Form() utasítással elkérjük a 'megfelelő form-elemtől az értéket és kiírjuk Response.Write "Vezetékneve: " & Request.Form("surname") Response.Write "<br>keresztneve: " & Request.Form("firstname") Response.Write "<br>kora: " & Request.Form("age") Response.Write "<br>neme: " & Request.Form("rd") Response.Write "<br>számítógép: " & Request.Form("cbox1") Response.Write "<br>könyv: " & Request.Form("cbox2") Response.Write "<br>zene: " & Request.Form("cbox3") Response.Write "<br>autók: " & Request.Form("cbox4") Response.Write "<br>sport: " & Request.Form("cbox5") Response.Write "<br>színe: " & Request.Form("colour") Response.Write "<br>megjegyzés: " & Request.Form("comment") %> </BODY> </HTML> Az előző példában a POST metódust alkalmaztunk az adatok elküldésére. Amenyiben GET-et használtuk volna (form2.htm, form2.asp), csak annyiban különbözne a forráskód, hogy a Request.Form helyett Request.Querystring szerepelne. Ilyenkor a webszerver az alábbi URL-kérést kapná: http://localhost/form2.asp?surname=nagy& firstname=béla&age=40&rd=férfi 71

ASP kézikönyv Készítsünk most egy olyan HTML űrlapot (emailcheck.htm), amely bekér egy email-címet, majd elküldi ezt egy másik asp oldalnak (emailcheck.asp), amely ellenőrizi az email-cím formátumának helyességét. Ha nem felel meg a követelményeknek, akkor arról küldjön egy hibaüzenetet. emailcheck.htm <HTML> <BODY> <FORM action="emailcheck.asp" method="post"> Kérem az Email-címet:<br> <input type="text" name="email" size="30"></input> <input type="submit" value="ellenőriz"></input> <input type="reset" value="töröl"></input> </FORM> </HTML> </BODY> emailcheck.asp <% mail = Request.Form("email") If mail = "" Or Not IsValid(mail) Then Response.Write ("HELYTELEN az email-cím formátuma.") Else Response.Write "Helyes az email-cím formátuma." End If %> <% ' Email-cím ellenőrző fgv. Function IsValid(mailvalid) Dim valid valid = True 'Email-cím formátumának ellenőrzése 'Nem lehet 5 karakternél rövidebb If Len(mailvalid) < 5 Then valid = False Else If Instr(1, mailvalid, " ") <> 0 Then 72

Ötödik fejezet valid = False Else ' @ nem lehet az első karakter If InStr(1, mailvalid, "@", 1) < 2 Then valid = False Else 'Pont nem lehet közvetlen a @ után If InStrRev(mailvalid, ".") < InStr(1, mailvalid, "@", 1) + 2 Then valid = False End If End If End If End If IsValid = valid End Function %> 73

ASP kézikönyv 74