Sunday, December 23, 2007

Logovanje i ogranicavanje pristupa!

Logovanje i ogranicavanje pristupa!



Pozdrav evo me kao sto sam i obecao, nastavljam sa tutorialom. Kao sto i sami znate cesto se javlja potreba da korisnicima ogranicite pristup pojedinim delovima vaseg sajta. Kako to mozemo da uradimo, pa lepo mozemo tako sto cemo da proverimo da li je onaj koji zeli da pristupi nekom delu sajta koji smo zastitili registrovan clan na nasem sajtu (kasnije cemo da vrsimo podelu i po jos nekim kriterijumima) ;)


Za registraciju, tj. dodavanje clanova mozete da iskoristite post "Dodavanje podataka u bazu".


Kako da proverimo da li je neko ko pokusa da pristupi nekom delu sajta zaista u nasoj bazi clanova?


Pa lepo koristicemo filtriranje baze, i ukoliko taj neko ko pokusa da se uloguje i unese prave podatke koje trazimo od njega (korisnicko ime i lozinku) i ukoliko je jedinstven onda cemo da ga izvrsimo neku akciju, u suprotnom poslacemo mu neko obavestenje da ne moze da pristupi.


Kako to izgleda?


Evo ovako, postavicemo na formu 2 edit boksa i u properties-u prvom cemo staviti ime (name) ProveriIme a drugom ProveriLozinku.


Postavicemo i jedno dugme, nazvacemo ga LogInButton i isprogramiracemo.


function LogInButtonClick($sender, $params)

{

$con = mysql_connect("localhost", "", "");

if (!$con) {

die('Ne moze da se uspostavi veza ' . mysql_error());

}

$db_selected = mysql_select_db("Korisnici",$con);

$sql = "SELECT KorisnickoIme FROM TabelaKorisnici WHERE KorisnickoIme = '".$this->ProveriIme->Text."' AND Lozinka = '".$this->ProveriLozinku->Text."'";

$result = mysql_query($sql,$con);

if (mysql_num_rows($result) == 1)

{

echo 'ULOGOVAN';

mysql_close($con);

exit;


}

else

{

echo 'LOSI PODACI';

mysql_close($con);

exit;

}



Sta radi ovaj kod?


Dakle, prvo se konektujemo na bazu podataka u koju su korisnici, i sql upitom vrsimo proveru (filtriranje), da li se uneti korisnik nalazi u bazi.


Kad se filtriranje zavrsi proveravamo koliko ima rezultata, ako je pronadjen korisnik u bazi koji ima trazeno korisnicko ime i lozinku koja odgovara tom imenu onda u mom primeru stampam za rezultat komentar "Ulogovan" a ako su uneti podaci pogresni stampamo za rezultat "Losi podaci".


Naravno vi mozete da stavite nesto drugo, tipa stavite redirekciju na odredjen deo, ili sl. igrajte se malo ovim, eksperimentisite...

6 comments:

milanbl said...

Da li možeš postaviti članak o tome kako napraviti da se combobox opcije povlače iz neke postojeće tabele? Recimo ako neko bira državu u kojoj živi, da mu se u comboboxu ponude države koje se nalaze u bazi, u nekom šifarniku. Još nešto, postoji li neka dokumentacija koja opisuje svaki element (form, edit, combobox, listbox..) čemu služi, koje propertije ima i koje funkcije ima, nešto kao intelisens... :)

P.S. Tenacious D RuLeZ!!!

Vladica Savić said...

Postavicu to pre nove godine nadam se ;)

ivanzj said...

hocemo nesto novo :D

$Tesic$ said...

ovaj primjer ne radi

Nemanja Tatić said...

Radi kod samo nije bas koristan. SQL Injection napad ce da prodje bey problema.

Vladica Savić said...

Pozdrav svima posle duzeg vremena, zao mi je sto sam pomalo zapostavio ovaj blog. Kako god, da odgovorim na ranije postavljen komentar vezan za bezbednost :)

Sto se tice SQL napada koji je pomenut nece proci ako aktivirate u php.ini fajlu recimo get_magic_quotes_gpc() koji ce automatski da se postara za prosledjene podatke preko POST, GET -a i COOKIES ili isto mozete da iskoristite funkcije addslashes() i stripslashes() ;)