Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Register,login,logout - php tutorial

[es] :: Web aplikacije :: Register,login,logout - php tutorial

Strane: 1 2

[ Pregleda: 8338 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
212.200.246.*



+9 Profil

icon Register,login,logout - php tutorial11.11.2008. u 20:57 - pre 187 meseci
Primjetio sam da ima dosta pitanja oko ove teme, i da ima dosta nejasnoca itd, kada sam ja pocinjao da se bavim php-om ovo nije postojalo, i ubio sam se uceci php i trazeci po netu objasnjenja itd, itd
e da se to nebi desavalo buducim "programerima" i "web-dizajnerima" odlucio sam da postavim ovaj mali tutorial i ucinim ga dostupnim svakome kome zatreba a siguran sam da hoce.
Pa dobro da pocnemo:
1 - kreirajte bazu podataka (nazovite je kako hocete, u mom slucaju ona se zove new)
2 - tablu takodje nazovite kako hocete, u mom slucaju ona se zove users
3 - br. polja 3
4 - prvo polje ID, type - mediumint, Length/Values - 9, Extra - auto_increment, i oznacite je kao primary (prvi radio button sa ikonicom kljuca)
5 - drugo polje username, type - varchar, Length/Values - 60
6 - trece polje password, type - varchar, Length/Values - 60
7 - kreirajte fajlove add.php, login.php, members.php, logout.php
8 - napomena: ovaj sistem radi pomocu cookia
9 - sve sto je potrebno da uradite je da napocetku svakog fajla zamjenite sledece:

mysql_connect("localhost", "root", "password") or die(mysql_error()); ovo su postavke u localhostu
mysql_select_db("new") or die(mysql_error());


localhost - ime vaseg hosta
root - vas username
password - vas password napomena: passworda nema u localhostu pa tu ostavite samo navodnike""
new - ime vase baze

A evo i kodova od tih fajlova

add.php

Code:

<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("new") or die(mysql_error());

//This code runs if the form has been submitted
if (isset($_POST['submit'])) {

//This makes sure they did not leave any fields blank
if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) {
die('You did not complete all of the required fields');
}

// checks if the username is in use
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
$usercheck = $_POST['username'];
$check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'")
or die(mysql_error());
$check2 = mysql_num_rows($check);

//if the name exists it gives an error
if ($check2 != 0) {
die('Sorry, the username '.$_POST['username'].' is already in use.');
}

// this makes sure both passwords entered match
if ($_POST['pass'] != $_POST['pass2']) {
die('Your passwords did not match. ');
}

// here we encrypt the password and add slashes if needed
$_POST['pass'] = md5($_POST['pass']);
if (!get_magic_quotes_gpc()) {
$_POST['pass'] = addslashes($_POST['pass']);
$_POST['username'] = addslashes($_POST['username']);
}

// now we insert it into the database
$insert = "INSERT INTO users (username, password)
VALUES ('".$_POST['username']."', '".$_POST['pass']."')";
$add_member = mysql_query($insert);
?>


<h1>Registered</h1>
<p>Thank you, you have registered - you may now login</a>.</p>
<?php
}
else
{
?>


<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0">
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="60">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="10">
</td></tr>
<tr><td>Confirm Password:</td><td>
<input type="password" name="pass2" maxlength="10">
</td></tr>
<tr><th colspan=2><input type="submit" name="submit" value="Register"></th></tr> </table>
</form>

<?php
}
?>


login.php

Code:

<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("new") or die(mysql_error());

//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))

//if there is, it logs you in and directes you to the members page
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: members.php");

}
}
}

//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted

// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
die('You did not fill in a required field.');
}
// checks it against the database

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Incorrect password, please try again.');
}
else
{

// if login is ok then we add a cookie
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//then redirect them to the members area
header("Location: members.php");
}
}
}
else
{

// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?> 


members.php

Code:

<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("new") or die(mysql_error());

//checks cookies to make sure they are logged in
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{

//if the cookie has the wrong password, they are taken to the login page
if ($pass != $info['password'])
{ header("Location: login.php");
}

//otherwise they are shown the admin area
else
{
echo "Admin Area<p>";
echo "Your Content<p>";
echo "<a href=logout.php>Logout</a>";
}
}
}
else

//if the cookie does not exist, they are taken to the login screen
{
header("Location: login.php");
}
?> 


logout.php

Code:

<?php
$past = time() - 100;
//this makes the time in the past to destroy the cookie
setcookie(ID_my_site, gone, $past);
setcookie(Key_my_site, gone, $past);
header("Location: login.php");
?>


Izvinjavam se ako sam negdje napravio gresku tokom pisanja ovog tutoriala (u kodovima nema gresaka u to sam siguran), nadam se da ce nekom biti od koristi i zelio bih cuti vase komentare u vezi svega ovoga...

Pa sta cekate navalite sa kopiranjem kodova i imacete svoj sistem za registrovanje :)))



Signaure Hamer Dev .inc
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Register,login,logout - php tutorial12.11.2008. u 07:49 - pre 187 meseci
Nije ti ovo bas dobro resenje.

Koristis cookies za smestanje vitalnih podataka a to je lose i nije bezbedno. Umesto toga treba da koristis sesije na serveru i to tako da se kroz sesiju izmedju strana provlaci samo id sesije a ne username, password ili bilo koji drugi podatak koji predstavlja bezbednosni rizik.

Ceo ovaj kod je tesko integrisati u neko gotovo okruzenje, pogotovo sto koristi odvojene datoteke za svaku akciju, umesto da napravis jednu php datoteku koja predstavlja interfejs i poziva se iz svakog dokumenta na sajtu.

Recimo, mozes da napravis security.php koji radi ceo posao vezan za korisnika a njega koristis u svakom dokumentu na sajtu na primer ovako:


<?php

$_REQUIRED_SECURITY_LEVEL = 'registered';

include 'security.php';

...

?>


Ako korisnik nema odgovarajuci nivo, skript mu sam ponudi da se uloguje (ili registruje). Interfejsno, uvek se poziva samo security.php a on, na osnovu statusa treba da odluci sta ce da radi dalje. Dobro je da on prikaze potreban dijalog ako je potrebno a ne da usmerava na neki drugi skript, da bi se zadrzao opsti izgled sajta.
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
*.opera-mini.net.



+9 Profil

icon Re: Register,login,logout - php tutorial12.11.2008. u 10:27 - pre 187 meseci
Hvala na dobroj kritici, ali ja sam jos uvijek pocetnik u svemu ovome tako da nemam (trenutno)bas dovoljno znanja iz php (ali ucim ucim!) za to sto ti govoris, vidim da su sesije mocna stvar mada se uvijek zadesi situacija sta ako ovo ... ili ono ... Kod je tu pa ako neko vidi neki propust ne ukaze na to, ili ako vi (nemislim na nikoga pojedinacno) mislite da to moze bolje vi pokazite kako i sta kao sto je ovdje slucaj, mada sam primjetio da se steceno znanje tesko djeli sa nekim cak i ako ga podjele to je nekih 1% sto prakticno neznaci nista, toliko za sad od mene pa se vi vidite.
P.S nemam namjeru da nikog vrijedjam ili omalazavam samo govorim u istinu kako jeste.
Signaure Hamer Dev .inc
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Register,login,logout - php tutorial12.11.2008. u 11:16 - pre 187 meseci
Ja sam ti samo iz dobre namere ukazao na nedostatke tvog koda i dao ti predlog kako bi to trebalo da se uradi. Ovo sto sam ti ja ispricao nisam ja izmislio, imas na netu sijaset gotovih PHP skriptova koji se tako ponasaju.

Da se razumemo, prvi put kada sam se dohvatio slicnog problema, na prvu loptu sam imao slicnu ideju. Srecom ja sam pre PHP-a imao mnogo godina programerskog iskustva tako da sam tu ideju odbacio jer sam brzo uvideo manjkavosti, ali sam i ja morao da prodjem kroz nekoliko razlicitih pristupa dok nisam uklavirio sta je najprakticnije.

Moj komentar je napisan samo sa namerom da ti da ideju kako bi to mogao bolje da uradis. Sledece sto bih mogao da uradim je da ti dam gotov kod, a to nema svrhe da radim kada mozes i sam da ga nadjes preko Google-a.

Pozabavi se sesijama. Nisu one nista teze za korsicenje od kolacica, cak su jednostavnije. Sto se tice raznovrsnosti podataka koji mogu da ti sepojave a vezani su za sesiju to resi tako sto ces na serveru imati jednu tabelu za sesije i kako se koja seisa otvori u toj tabeli nparavio slog za nju. Sv epodatke koji ti za sesiju trebaju upisuj u taj slog, a slogu pristupaj preko ID sesije. U toj tabeli mozes da cuvas i korisnicko ime i lozinku (mada je to i tu nepotrebno, dovoljno je da cuvas inforamciju da li je korisnik ulogovan ili ne, tako da sa loiznkom radis samo na jednom jeidnom mestu - kada proveravas da li ju je korisnik ispravno ukucao), i vreme kada se ulogovao i vreme kada je poslednji put otvorio neku stranu tako da mozes da ga automatski izlogujes ako je neaktivan, i IP sa koga se ulogovao i mnogo stosta sto ti zatreba.

Inace ova tema nije nova, siguran sam da ces na ES naci bar jednu slicnu diskusiju koja ide i u vece detalje.
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
*.opera-mini.net.



+9 Profil

icon Re: Register,login,logout - php tutorial12.11.2008. u 11:45 - pre 187 meseci
Misim da me nisi bas dobro razumio, shvatio sam sta pokusavas da mi kazes jos iz prvog posta, mada nisam znao da su kolacic tako losi za ovaj sistem i hvala ti na ukazanom putu i datoj ideji kojom cu se pozabavit u narednom periodu pa cu rezultat da ostavim ovdje, mada si me sad zatrpao dosta sa sesiama tako da cu prvo morati da ukapiram ovo oko tebele za njih jer mi je potpuno novo, zahvaljujem ti se na iscrpnoj kritici, i izvinjavam ti se ali nisam imao ama bas nikakvu losu nameru, ali mislim da znas kako je kad ti se prvi uspjesan projekat zasniva na losoj platformi,
Ali sam ovaj skript uradio zato sto sam mislio da zbog nemogucnosti da se vidi php kod da je siguran i bezbjedan, mada nevidim nacin kako bi se doslo do nekih osjetljivih informacija u slucaju kukia, ali je to vjerovatno zbog mog neznanja php, jos jedno hvala i nadam se da mogu racunati na tebe kad zavrsim ovo sa sesiama da bacis pogled na to?
Signaure Hamer Dev .inc
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
*.opera-mini.net.



+9 Profil

icon Re: Register,login,logout - php tutorial12.11.2008. u 14:00 - pre 187 meseci
Zaboravih da te pitam jos jednu stvar ovo oko sesija,znaci kreiram jednu tabelu koja je ustvari brousver u slucaju kukia a nekakav unos u tu tabelu tj. kako to kazu "setovana sesia" su ustvari kuki-i u slucaju predhodnog primjera, tj. kada se neko uloguje sesia salje neku vrijednost u tabelu odakle i provjerava da li si ulogovan ili ne, a i postoji neko vrijeme posle kog se brise vrijednost iz te tabele (kao sto brovsver pamti kolacice neko vrijeme) i korisnik je izlogovan ili na dugme logout ta se vrijednost iz tabele se brise, jeli to tako dodje nesto, a i po tom sistemu moze se vidjeti koliko je korisnika on-line i jos bolje koji su, ispravi me ako grijesim?
Signaure Hamer Dev .inc
 
Odgovor na temu

barons

Član broj: 199771
Poruke: 85
..2-r.retail.telecomitalia.it.



Profil

icon Re: Register,login,logout - php tutorial12.11.2008. u 23:22 - pre 187 meseci
a nisi stavio index.php fajl, pocetnu stranu, mislim da to fali ovom jako dobrom topicu.
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about
new ways to harm our country and our people, and neither do we." - George W. Bush
 
Odgovor na temu

Prokleta_Nedelja
Beograd

Član broj: 90608
Poruke: 450
*.teol.net.



+42 Profil

icon Re: Register,login,logout - php tutorial13.11.2008. u 07:12 - pre 187 meseci
index.php nema veze sa ovim. Ljudi pricaju o loginu, fajlovima koje ces koristiti u kombinaciji sa ostalim fajlovima tvoje web aplikacije.
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
*.opera-mini.net.



+9 Profil

icon Re: Register,login,logout - php tutorial13.11.2008. u 07:14 - pre 187 meseci
Ako mislis na index.php pocetnu stranu sajta nju ti kreiras sam samo dodas link koji vodi do add.php fajla a to je ustvari forma za registrovanje, a login.php mozes da stavis na pocetnu stranu sajta a i nemoras nego isto stavis link sa pocetne do login.php, a members.php su ti ustvari sve ostale stranice do kojih imas pristup sa index.php, tj dio koda iz members.php stavis u head svake strane (kojoj pristupas sa pocetne) sem index.php jer dok se ne ulogujes nemozes pristupiti members.php tj. ostalim stranicama tvog/nekog sajta, jesi shvatio kako ovo funkcionise, tj tako sam ga ja otprilike zamislio.
Signaure Hamer Dev .inc
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
*.opera-mini.net.



+9 Profil

icon Re: Register,login,logout - php tutorial13.11.2008. u 10:29 - pre 187 meseci
Posto vidim da je tema posjecena moze li neko da objasn malo detaljnije ovo oko sessia, na kom principu rade, i ovo oko tabele sa kojom sesie rade u sistemu za logovanje, bio bih mu zahvalan, a nebi bilo lose ni da ukljuci kakav primjer u sve to, hvala
Signaure Hamer Dev .inc
 
Odgovor na temu

barons

Član broj: 199771
Poruke: 85
..2-r.retail.telecomitalia.it.



Profil

icon Re: Register,login,logout - php tutorial13.11.2008. u 11:26 - pre 187 meseci
Citat:
koji vodi do add.php fajla a to je ustvari forma za registrovanje


da to mi je trebalo.
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about
new ways to harm our country and our people, and neither do we." - George W. Bush
 
Odgovor na temu

beep
Srbija/Vrbas

Član broj: 19294
Poruke: 198
*.dynamic.sbb.rs.

Sajt: keselj.xyz


+1 Profil

icon Re: Register,login,logout - php tutorial13.11.2008. u 21:09 - pre 187 meseci
Citat:
vidonk: Posto vidim da je tema posjecena moze li neko da objasn malo detaljnije ovo oko sessia, na kom principu rade, i ovo oko tabele sa kojom sesie rade u sistemu za logovanje, bio bih mu zahvalan, a nebi bilo lose ni da ukljuci kakav primjer u sve to, hvala


Instaliraj Joomla-u i vidi session tabelu i sve ce ti se samo kazati ... Probaj da ovaj kod objedinis u klasu da bi kasnije mogo lakse da se koristi ....
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
77.46.234.*



+5 Profil

icon Re: Register,login,logout - php tutorial25.01.2009. u 21:30 - pre 185 meseci
jedno pitanje za sve odnosno nekog ko ce mi odgovoriti, gde se smestaju podaci (korisnicko ime i lozinka) o korisnicima koji se uloguju preko ove skripte

izmena>uspeo sam pronaci ali je problem sto se samo jedanput mogu logovati i baza pamti jednog usera, kad po drugi put u add.php unesem on kao prihvati ali u bazi i dalje stoji onaj jedan???

[Ovu poruku je menjao miki987 dana 25.01.2009. u 22:57 GMT+1]
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
212.200.246.*



+9 Profil

icon Re: Register,login,logout - php tutorial28.01.2009. u 20:45 - pre 185 meseci
Druze .... ocigledno da si nes pobrko ...... hm ovako .....
Ti ovdje imas php fajl za registrovanje i php za logovanje .........
kad se registrujes ....... unose se podaci u bazu .......
kad se logujes ...... neunosi se nis u bazu .... tj php fajl ti setuje (dodijeli) kuki i po tome zna da li si se ulogovo ili ne ..... baze nema veze sa logovanjem ...... ( neunose se nikakvi podaci u bazu kad se logujes ) znaci taj problem sto si ti naveo to si nes pobrko .......... jel jasnije ..... :) ..... pozz
Signaure Hamer Dev .inc
 
Odgovor na temu

casanoova

Član broj: 206528
Poruke: 36
79.101.134.*



Profil

icon Re: Register,login,logout - php tutorial29.01.2009. u 15:56 - pre 185 meseci
Dobar tutorijal !
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
91.150.104.*



+5 Profil

icon Re: Register,login,logout - php tutorial30.01.2009. u 01:16 - pre 185 meseci
sory mislio sam na registraciju, zasto u bazi vidim samo PRVO korisnicko ime, drugi put kada se registrujem nema nicega-novog korisnickog imena, razumes?(pocetnik)
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
212.200.246.*



+9 Profil

icon Re: Register,login,logout - php tutorial30.01.2009. u 18:26 - pre 185 meseci
Evo sam sad ponovo upotrebio ovaj code i kod mene radi normalno kao i prije ........ mogu da se registrujem koliko hocu puta i svaki user postoji u bazi tj unesen je ....... ne znam zasto kod tebe nece ....
Da li koristis wamp ili neki drugi ........ ? Pokusaj ponovo da kopiras kod u nove falove ....... pa probaj ponovo ........ i naravno kreiraj novu bazu ...........jesi podesio tablu kako treba (autoincriment i td .. )..... ne znam ali ako ti je jednom unijelo podatke u bazu ........ zasto nece i drugi put ....... probaj ovo sto sam reko ....... pa cemo da vidimo ......... nerazumijem ......
Signaure Hamer Dev .inc
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
93.87.128.*



+5 Profil

icon Re: Register,login,logout - php tutorial30.01.2009. u 20:12 - pre 185 meseci
vidonk Hvala uspeo sam, problem je sto ovo trazi stalno da se osvezava a greska je bila u tabeli...e sad jos samo ako ima resenja (link) da uradim ono kad god se neko uloguje da podaci idu na njegov mail sa aktivacionim kodom? i usput kako da vidim password ispod ekripcije ne bih da cackam ali mislim da je to negde u tabeli podesavanje prilikom kreiranja???
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
212.200.246.*



+9 Profil

icon Re: Register,login,logout - php tutorial30.01.2009. u 20:43 - pre 185 meseci
Hm ....... ti bi da vidis password a ? ......... eeee........... ne moze! ........ (salim se ) ..... nebih ti preporucio da password ostavis bez enkripcije ali kako hoces .......
samo nadji gdje ti pise "md5" u add.php i obrisi ...... i passeord ti nece biti sifriran ...... ali sta ako ti neko bane u bazu ...... ? (ne znam kako hoces .... )

a e-mail ....... nema potrebe za tim ..... (imaces vise korisnika) ...... a imas li e mail na hostu ?
Signaure Hamer Dev .inc
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
93.87.128.*



+5 Profil

icon Re: Register,login,logout - php tutorial30.01.2009. u 22:10 - pre 185 meseci
pravim neki sajtic jako zanimljiv u komercijalne svrhe, u flash-u (dizajn radim lepo as slabije) i bice mi potrebna varijanta sa mail-om, cak bih zbog provere bilo idealno uraditi i ono sa br.tel. ali...sto se tice passworda potrebno mi je ono "zaboravljena lozinka" pa na mail.Hvala jos jednom.p.s.radim jos uvek na localhostu
 
Odgovor na temu

[es] :: Web aplikacije :: Register,login,logout - php tutorial

Strane: 1 2

[ Pregleda: 8338 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.