Gagnasafnsfræði, haust 2011

[ Dagskrá  |  Námsefni  |  Verkefni  |  Dæmatímar  |  Orðalisti  |  Námsmat  |  Kennslubók ]

Verkefni 5 - SQL og vefforritun

Lausnum skal skilað í hólf viðkomandi dæmakennara (sjá lista yfir dæmatíma).

Skiladagur: mánudaginn 3. október fyrir kl 16:00

Þið megið leysa verkefnið í forritunarmáli að ykkar eigin vali. Ég reikna samt með að flestir noti PHP og mun miða kennsluna við það.

Þið megið vinna saman í hópum (hámark 3 í hóp) og hver hópur skilar þá saman einni lausn.

Skilið öllum kóða á læsilegu formi með inndrætti.

Sýnidæmi

Teljari:

Einfalt login og logout sem notar sessions:

Dæmi um skráningu á nýrri kvikmynd:

Dæmi um vefsíðu sem sækir úr SQL með SELECT og birtir sem HTML töflu:

Annað SELECT dæmi sem notar sniðmát (template):

ATH: Forritið movies2.php notar HTML_Template_Sigma sniðmát í PHP. Það þarf að setja inn PHP PEAR (ef það fylgdi ekki með PHP uppsetningunni) og síðan HTML_Template_Sigma eininguna með skipuninni "pear install HTML_Template_Sigma" í skipanalínu.

Skiladæmi:

  1. Skilgreinið töflur til að halda utan um notendur, smáskilaboð (hámark 140 stafir) og vinatöflu.

    Taflan users skal innihalda eftirfarandi dálka:

    1. id: raðnúmer
    2. username fyrir login
    3. password, má vera sýnilegt (cleartext), fallegra að hafa það hakkað með t.d. MD5

    Taflan messages skal innihalda eftirfarandi dálka:

    1. id: raðnúmer
    2. userid: ytri vísun í users.id
    3. timestamp: tímasetning
    4. message: hámark 140 bókstafir

    Taflan follows skal innihalda eftirfarandi dálka:

    1. userid: ytri vísun í users.id
    2. following: ytri vísun í users.id

    Sýnið CREATE TABLE skipanirnar á læsilegu formi með inndrætti.

  2. Búið til vefsíðu til að skrá nýja notendur.

    Dæmi um útfærslu:

    register.html: HTML vefsíða sem inniheldur eyðublað (form) með innsláttarsvæði fyrir notendanafn og lykilorð. Eyðublaðið er sent með POST á register.php (þeas. með method="POST" og action="register.php")

  3. register.php: PHP vefsíða sem les notendanafn og lykilorð upp úr $_POST og skráir það í users töfluna í gagnagrunninum.

    ATH: Þið getið notað HTTP redirect í lokin á register.php til að senda notandann áfram á aðra síðu eftir að register.php er búið að skrá í gagnagrunninn. Dæmi um redirect:

    <?php
    
    // ..
    
    header("Location: xx.html");
    ?>
    

  4. Búið til vefsíðu þar sem notandi getur skráð sig inn (login) og skráð sig út (logout).

    Það þarf eina vefsíðu sem inniheldur HTML eyðublað þar sem notandi getur slegið inn notendanafn og lykilorð.

    Eyðublaðið er sent á dýnamíska vefsíðu sem les gögnin, flettir notanda upp í users og athugar hvort hann sé til og lykilorðið sé rétt.

    Ef allt stemmir þá eru viðeigandi upplýsingar skráðar í session geymsluna (notandi hefur verið auðkenndur, hvaða notandi þetta er, o.s.frv.)

    Búið einnig til vefsíðu þar sem notandi getur skráð sig út. Það hreinsar upp úr session geymslunni þ.a. notandi er ekki lengur auðkenndur.

  5. Búið til vefsíðu til að sýna smáskilaboð hjá e-m tilteknum notanda.

    Vefsíðan skal lesa notandanafnið úr GET stika.

    Dæmi um hvernig væri hægt að kalla á vefsíðuna:

    http://server/view.php?user=abc
    

    Vefsíðan skal birta lista yfir nýjustu smáskilaboð notendans í tímaröð.

  6. Búið til vefsíðu þar sem auðkenndur notandi getur sett inn ný smáskilaboð.

    Vefsíðan skal innihalda HTML eyðublað með textarea þar sem notandi getur slegið inn skilaboðin.

    Eyðublaðið er sent á dýnamíska vefsíðu sem skráir það í messages töfluna.

  7. Búið til vefsíðu til að sýna nýjustu smáskilaboð allra þeirra sem núverandi auðkenndur notandi fylgist með.

    Vefsíðan skal birta lista yfir nýjustu skilaboð fléttuð saman í tímaröð þ.a. hún birti t.d. síðustu 20 skilaboðin.