PHP ja tietokannat sekä 5. viikkotehtävä - Luento 12
Luentotaltiointi
- sovellukset12.wmv 50M
- sovellukset12.mp3 14M
- sovellukset12_xvid.avi 98M
Jatketaan PHP:n tietokantojen läpikäymistä esimerkkien avulla. Lisäksi käydään läpi viidettä viikkotehtävää.
Viides viikkotehtävä
Viidennen viikkotehtävän tilastoja:
Katsellaan seuraavia asioita:
- Mallivastaukset
- Käyttäkää password-kenttää salasanoille!
- Ei salasanoja ainakaan selväkielisenä $_GET-taulukossa!
- Evästeiden kanssa oli yllättävän paljon ongelmia. Eväste tulee muistaa asettaa tehtävässä aina uudelleen silloin, kun joku sivu ladataan. Evästeen tulee olla lisäksi sama kaikille sivuille.
- trim()-funktiolla saa kätevästi rivinvaihdot pois merkkijonon molemmista päästä. Jotkut eivät huomanneet sitä ja näin ollen salasanan tarkistus epäonnistui.
- Useilla oli aika pitkiä koodiviritelmiä. Tässä vaiheessa, kun PHP:tä on opiskeltu jo melko paljon, kannattaa miettiä myös tehokkuutta ja suoraviivaisuutta.
- Käytön helpottamiseksi kirjautumisesta tulee olla aina linkki rekisteröitymiseen. Miten käyttäjä muuten voisi tietää, mistä rekisteröiminen löytyy, jos tunnusta ei vielä ole?
- Rekisteröimisessä syötettyjen arvojen tarkistuksessa oli paljon puutteita. Esimerkiksi "|"-merkin olemassa olo tai tunnusten samanlaisuus todennäköisesti sekottaisi oikean sovelluksen, eli ne on välttämätöntä testata. Ei ole myöskään järkevää pelkästään korvata "|"-merkkiä tyhjällä, miten käyttäjä tällöin tietäisi oman tunnuksen tai salasanan?
- Jotkut olivat tallentaneet tiedoston lataukseen kuluneen ajan latausajankohdan sijaan. Siitä ei poistettu pisteitä, koska toimenpide on jopa hiukan haastavampi. Onnistuu laskemalla mikrosekunteina (microtime()) aika latauksen alun ja lopun välillä. Ajankohdan puolestaan saa suoraan date()-funktiolla.
- Isoilla kirjaimilla ei saisi olla merkitystä tiedostopäätteen tarkistuksessa, kannattaa siis esimerkiksi ensin muuttaa kirjaimet pieneksi ja tehdä tarkistus vasta sitten.
- Muutama oli toteuttanut työn luokilla ja olioilla, joka oli hyvä idea ja näin ollen samoja luokkia voi varmasti käyttää muidenkin palveluiden vastaavissa operaatioissa. Näin tehtävästä saatiin hyötyä kurssin ulkopuolellekin! Toki ilman olioita olevaa koodia voi myös hyödyntää.
PHP ja tietokannat
Teoriat käytiin läpi luennolla 11.
Tehdään luennolla esimerkkejä käyttäen oikeaa MySQL-tietokantaa. Valitettavasti esimerkkipalvelimella ei ole riittävän uutta PHP-versiota, joten joudutaan käyttämään PHP:n tietokantasidottuja funktioita PDO:n sijaan. Jos riittävän uusi PHP olisi käytössä, niin vastaavat esimerkit siis kannattaisi tehdä PDO:ta käyttäen! Jos esimerkistä siis ottaa vinkkejä vaikkapa viikkotehtävään, niin koodi tulee muuttaa PDO:ta käyttäväksi (PDO:n käyttö vaatimuksena viikkotehtävässä 6).
Luentoesimerkin lähdekoodi


Käyttäjien kommentit