PHP Login

Hei, etsiskelen jostakin PHP kirjautumis ja rekisteröitymis systeemiä, jossa ei tarvitsisi käyttää mySQLiä, kun mbnetin palvelimella sitä ei voi käyttää.

Enkä ala itse koodata, php opinnot on niin alussa. Haluun vaan kirjautuminen ja rekisteröityminen syystemin sivuilleni.

Joten jos joku tietää jonkun tutoriaalin/skriptin?
62664
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Itse kun tekee, niin siinä sitä oppii..

Nimittäin kirjautumisen tehdessäsi, opit väkisin monia php:ssä tarvittavia perusjuttuja. Joten suosittelisin hyvin vahvasti yrittämään.

Jos sivullasi ei rekisteröityneitä käyttäjiä kovin kamalasti ole, niin ihan tiedostopohjainen systeemi on varmasti riittävän suorituskykyinen.

Alla on kuvailtuna systeemi, joka käyttää kahta tiedostoa. Toisessa on tallennettuna kaikki rekisteröityneet käyttäjät (tunnus ja salasana) ja toisessa taas kirjautuneet käyttäjät (tunnus ja istuntotunnus). Toki tämän voi hoitaa yhdelläkin tiedostolla, mutta tässä nyt vaikkapa selvyyden vuoksi näin.

Tiedostot kannattaa sijoittaa kansioon, joka ei näy webissä. esimerkiksi .htaccessilla suojattuun kansioon, tai nettijuurihakemiston (public_html) ulkopuolelle. phpllä kun kuitenkin on pääsy näihin - käyttäjillä ei.

Salasanat kannattaa hashata jotenkin. Esimerkiksi sillä md5() funktiolla. näin niitä ei (heti) saa selville, vaikka jollain ihmeen kaupalla tiedostot saisikin näkyviin.

Seuraavassa yleinen periaate loginille. Samanlainen rakenne joka sivulle, jonka haluat olla salasanalla suojattu. include() -komento on kova sana... Tiedostonkäsittelyfunktioita en jaksanut kirjoittaa. Ne on kuitenkin ihan peruskauraa: esim rivi kerrallaan tallentaa ja lukee. tunnus ja salasana voi olla erotettuna vaikkapa välilyönnillä, tai jollain erikoismerkillä toisistaan.



1) jokaisen suojattavan php-sivun alkuun session_start(), jolla luodaan istunto, sekä merkintä siitä, että käyttäjää ei ole (vielä) tunnistettu (kirjautunut=false)

2) tämän jälkeen joka sivulle koodi, joka tarkastaa, pitääkö käyttäjältä kysyä tunnukset, vai löytyykö se kirjautuneista käyttäjistä

2.1) tarkasta, josko käyttäjän istuntotunnus ($_SESSION['istuntotunnus'] )löytyy 'kirjautuneet käyttäjät' -tiedostosta (ks. kohta 2.4). jos istuntotunnus löytyy, niin kyseinen käyttäjä on silloin tunnistettu ja voit merkitä käyttäjän kirjautuneeksi (kirjautunut=true)

2.2) jos kyseistä istuntotunnusta ei löydy tiedostosta, pyydä käyttäjältä tunnukset (perus html:n FORM:lla onnistuu)

2.3) vertaa käyttäjän syöttämiä tunnuksia ja palvelimella tiedostossa tallessa olevia, rekisteröityjä tunnuksia toisiinsa. jos löytyy sama tunnus/salasana -pari, niin käyttäjä on tunnistettu ja voit tehdä seuraavat toimenpiteet.

3.1) luo käyttäjälle uniikki istuntotunnus (esim. uniqid() -funktiolla), jonka tallennat $_SESSION[] -muuttujaan, sekä 'kirjautuneet käyttäjät' -tiedostoon yhdessä edellä löydetyn tunnuksen kanssa (esim samalle riville).

3.2) merkitse käyttäjä kirjautuneeksi (kirjautunut=true)

4) edellä olevien tarkastusten jälkeen voit testata sivulla, onko käyttäjä kirjautunut (kirjautunut=true/false). jos käyttäjä on kirjautunut, voit päästää hänet sisään. jos ei, niin virheilmoitus/uudelleen kirjautumisyritys

5) jos käyttäjä haluaa kirjautua ulos, pitää istunto tuhota ja istuntotunnus nollata (session_destroy() ja unset( $_SESSION['istunto'] ), sekä 'kirjautuneet käyttäjät' -tiedostosta poistaa ko. käyttäjän tiedot.

*******
esim.php
*******

Äänestä
  • Niin tuossa äsken hirveessä kiihkossa tuota koodia työnsin, niin en yhtään tiedä toimiiko se. ihan vaan kirjotin, mitä mieleen tuli. mutta kyllä se tuolla idealla toimii. varamsti...

    Äänestä

  • Kiitos paljon! Onnistuin jopa tekemään rekisteröitymissysteemin! Opin paljon :)

    Äänestä

  • N00BI kirjoitti:

    Kiitos paljon! Onnistuin jopa tekemään rekisteröitymissysteemin! Opin paljon :)

    Onhan se kaikista parasta oppia tekemällä. Ja yleensä tekemällä virheitä...

    Vaan hyvä, jos sait koodia toimimaan. Itse joku aika sitten mietin ihan samoja asioita ja selailin eri foorumeita. Yrityksen ja erehdyksen kautta onnistuin. Ja onhan se mukava, kun tietää joka rivin omasta koodista, että mitä se tekee.

    Tuon yllä olevan koodin perusajatus pohjautuu paljolti ohjelmointiputka.net -sivustolla olevaan koodivinkkiin (kirjoittaja ajv). Siinä tosin käytetään tietokantapohjaista systeemiä, mutta toiminnallisuus on muuten aika samanlainen.

    Äänestä

  • Kirjautumis ja rekisteröitymissysteemi on vähän (tai ihan) eri asia kun salasanasuojatut sivut.

    Äänestä

Kommentoi aloitusta


N00BI kirjoitti:

Hei, etsiskelen jostakin PHP kirjautumis ja rekisteröitymis systeemiä, jossa ei tarvitsisi käyttää mySQLiä, kun mbnetin palvelimella sitä ei voi käyttää.

Enkä ala itse koodata, php opinnot on niin alussa. Haluun vaan kirjautuminen ja rekisteröityminen syystemin sivuilleni.

Joten jos joku tietää jonkun tutoriaalin/skriptin?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu