AMVA50,php ja mysql |
1. Yleistä | 2. Web toimintaympäristönä | 3. Yleistä tietokannoista | 4. SQL-kielen perusteet | 5. PHP ja MySQL |
6. Esimerkkisovellus | 7. Käyttäjien hallinta | 8. SQL-lauseiden turvallisuus | 9. Oppimistehtävät |
7. KÄYTTÄJIEN HALLINTA
7.1 Käyttäjä-tauluJos käyttäjiä on useita ja varsinkin, jos heillä on eri tasoisia oikeuksia, kannattaa käyttäjien hallinta tehdä tietokantapohjaisesti. Tässä luvussa esitetään edellisen esimerkin ylläpito-sivujen suojaus siten, että käyttäjä-tietoja ylläpidetään tietokannassa kayttaja-taulussa. Käyttäjien lisääminen ja päivitys tehdään suoraan tietokantaan, eikä sitä varten tehdä sovellukseen www-sivuja. Esimerkkiä voisi laajentaa tältä osin tekemällä esimerkiksi rekisteröitymissivun. Luodaan kayttaja-taulu tietokantaan seuraavalla sql-lauseella: create table kayttaja( tunnus varchar(30) primary key, salasana varchar(32), istuntotunnus varchar(32), istunto_alkoi timestamp); Selityksiä koodiin:
Tauluun lisätään käyttäjiä insert-lauseella. Lisätään esimerkkikäyttäjä testaaja, jonka salasana on testi. Salasana koodataan MD5-algoritmilla. insert into kayttaja (tunnus, salasana) values ('testaaja', md5('testi')); 7.2 KirjautumissivutTehdään yllapito-hakemistoon yksinkertainen lomake kirjautumislomake.php. <h2>Anna tunnus ja salasana</h2> Kirjautumistiedot lähetetään tiedoston kirjautuminen.php käsiteltäväksi. Sen koodi on kommentoituna seuraavassa. <?php 7.3 Kirjautumissivulle siirtyminenYlläpitosivuille pitää lisätä tarkistus, joka tarkistaa, että käyttäjä on kirjautunut järjestelmään. Mikäli kirjautumista ei ole tehty onnistuneesti, siirrytään automaattisesti kirjautumislomakkeelle. Tehdään yllapito-hakemistoon tiedosto aputoiminnot.php, joka lisätään jokaisen ylläpito-sivun alkuun kirjautumisen tarkistamista varten. <?php //liitetään mukaan funktiot.php-tiedosto ylemmästä hakemistosta require "../funktiot.php"; $yhteys = AvaaTietokanta(); Aputoiminnot-tiedosto tulee liittää jokaisen ylläpito-sivun alkuun. Liitetään se esimerkkinä ylläpidon aloitussivun eli kaikki.php-sivun alkuun. <?php require "aputoiminnot.php"; ?> Koodi pitää olla sivulla ihan ensimmäisenä ennen html-elementtejä, koska se sisältää http-pyynnön otsaketietoina lähetettäviä tietoja. Huomioi myös, että aputoiminnot-php-tiedostossa on rivit:
Nämä rivit tulee poistaa alkuperäistä kaikki.php-sivulta, jotta ne eivät tule
kahteen kertaan.
|