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?
PHP Login
6
2601
Vastaukset
- php velho
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
*******- php velho
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...
- N00BI
Kiitos paljon! Onnistuin jopa tekemään rekisteröitymissysteemin! Opin paljon :)
- php velho
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.
- Poro1
ettet ole vielä lukenut MBNETin omia ohjeita asiasta..
http://www.mbnet.fi/mbinternet/ohjeet/suojaus/
:)- Höpö.
Kirjautumis ja rekisteröitymissysteemi on vähän (tai ihan) eri asia kun salasanasuojatut sivut.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Naiset miltä kiihottuminen teissä tuntuu
Kun miehellä tulee seisokki ja ja sellainen kihmelöinti sinne niin mitä naisessa köy? :)1169045- 392653
- 1302410
- 222009
Miksi kohtelit minua kuin tyhmää koiraa?
Rakastin sinua mutta kohtelit huonosti. Tuntuu ala-arvoiselta. Miksi kuvittelin että joku kohtelisi minua reilusti. Hais141756- 111560
Kyllä poisto toimii
Esitin illan suussa kysymyksen, joka koska palstalla riehuvaa häirikköä ja tiedustelin, eikö sitä saa julistettua pannaa151517"Joka miekkaan tarttuu, se siihen hukkuu"..
"Joka miekkaan tarttuu, se siihen hukkuu".. Näin puhui jo aikoinaan Jeesus, kun yksi hänen opetuslapsistaan löi miekalla101448- 141306
- 51267