contoh 3. fitur login-logout halaman web dengan php

Upload: rifky-a-ayub

Post on 04-Nov-2015

11 views

Category:

Documents


0 download

DESCRIPTION

fl

TRANSCRIPT

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    1/7

    1

    Fitur Login/Logout Halaman Web Dengan PHP

    Banyak sekali aplikasi di internet yang menggunakan ftur login dan logout.Fungsinya tentu saja membatasi akses terhadap layanan tertentu yangdisediakan pada situs tersebut. Hanya anggota yang telah terdatar saja yangdiijinkan mengakses layananlayanan khusus tersebut. !ali ini P"plus akan

    membahas bagaimana membuat aplikasi yang memiliki ftur login/logout. #angdibahas di sini adalah halaman login dan logoutnya saja$ sedangkan isi aplikasiyang terletak di dalamnya bisa %nda kembangkan sendiri.

    Dalam pembuatan aplikasi ini kita membutuhkan database yang akanmenyimpan datadata dari para anggota yang telah terdatar. Buatlah databasedengan &y'(L sebagai berikut)

    mys*l+ ,reate database datar-

    mys*l+ ,reate table anggota+ uname ar,har012$+ ps3d ar,har4022-

    Database tersebut terdiri dari satu tabel bernama 5anggota6 dan tabeltersebut memiliki 0 buah feld yaitu uname untuk menyimpan user name danps3d untuk menyimpan pass3ord. &engapa feld ps3d ditentukan untuk memiliki40 karakter7 !ita akan bahas nanti.

    'ekarang mulamula kita akan buat dahulu halaman pendataran anggota.'kripnya diberikan pada listing 8.

    Listing 8. Halaman pendataran

    9H:&L+9H;%D+9:DApost %":@Apro,ess.php+

    =sername ) 9

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    2/7

    2

    9B>D#+97uname A GP>':IunameIJ-ps3d A mdKGP>':Ips3dIJ2-host A lo,alhost-

    user A root-p3d A rahasia-db A datar-stop A 1-s*l A sele,t uname rom anggota-,onn A mys*lG,onne,thost$user$p3d2 or

    die!oneksi gagal ) . mys*lGerror22-mys*lGsele,tGdbdb2-*ry A mys*lG*uerys*l2 or

    die(uery salah ) . mys*lGerror22-3hile ro3 A mys*lGet,hGarray*ry22 M

    i uname AA ro3IunameIJ2 Me,ho =sername uname 3as already ,hosen by someone else 9B?+-e,ho No ba,k and ,hoose another username-stop A 8-break-

    OO

    i stopAA12 Ms*l A insert into anggota alues IunameI$Ips3dI2-*ry A mys*lG*uerys*l2 or

    die(uery salah ) . mys*lGerror22-e,ho #our a,,ount is su,,essully ,reated 9B?+-e,ho 9% H?;FAIlogin.phpI+ "li,k here 9/%+ to login-

    O7+9/B>D#+9/H:&L+

    Perhatikan bah3a pada baris kedua skrip php setelah bagian 9B>D#+2terdapat ungsi mdK. Fungsi mdK merupakan ungsi yang menghitung mdK hash

    dari suatu string. &engenai hal ini %nda dapat mendapatkan inormasi lebih detildi http)//333.a*s.org/r,s/r,8408.html2. &dK hash menghasilkan 40 karakterdalam ormat heksadesimal.

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    3/7

    3

    9B>D#+?egistered user log in) 9B?+

    9P?;+9F>?& @%&;ArmLogDApost %":@Amain.php+=sername ) 9':Ips3dIJ2-host A lo,alhost-user A root-p3d A rahasia-db A datar-stop A 1-s*l A sele,t Q rom anggota 3here unameAIunameI-,onn A mys*lG,onne,thost$user$p3d2 or

    die!oneksi gagal ) . mys*lGerror22-mys*lGsele,tGdbdb2-*ry A mys*lG*uerys*l2 or

    die(uery salah ) . mys*lGerror22-num A mys*lGnumGro3s*ry2-ro3 A mys*lGet,hGarray*ry2-

    i numAA12 Me,ho =sername not ound 9B?+-e,ho No ba,k and try another username-

    O else M

    i ps3dRAro3Ips3dIJ2 Me,ho #our pass3ord is in,orre,t 9B?+-e,ho No ba,k and type the ,orre,t pass3ord-

    O else Me,ho #ou are su,,essully logged in-

    OO7+9/B>D#+9/H:&L+

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    4/7

    4

    Pada prinsipnya skrip main.php ini mengolah datadata dari halaman login.Langkah pertama yang dilakukan tentu saja adalah koneksi ke database. 'etelahitu men,o,okkan username yang ada di database$ jika tidak ,o,ok %nda dimintamemasukkan username kembali. Eika username ,o,ok dengan re,ord yang adapada database$ diperiksa pass3ornya. Eika pass3ordnya ,o,ok$ maka %nda akan

    dapat login$ jika tidak %nda diminta untuk mengisi pass3ord yang tepat. &udahbukan7

    @amun sebenarnya skrip tersebut di atas belumlah selesai. &engapa7'ebab skrip seperti di atas sekalipun telah diberi 5pagar6 di sanasini2 tetapmudah ditembus oleh siapapun$ bahkan %nda tidak perlu belajar menjadi ha,keruntuk dapat menembusnya.

    "ontoh mudah$ isilah orm login dengan data yang ada pada database%nda. Dengan sendirinya %nda akan login dan masuk ke halaman main.php yangbertuliskan 5#ou are su,,essully logged in6. 'ekarang tekan tombol 5ba,k6bro3ser %nda$ lalu setelah %nda tiba kembali ke halaman login$ tekan tombol5or3ard6. %pa yang terjadi7 #a$ %nda akan kembali masuk ke halaman main.phpdan login dengan sukses. ?&+9/P?;+

    @e3 user please register9% H?;FAsignup.php+ here 9/%+

    9/B>D#+9/H:&L+

    File login.php tersebut hanyalah orm login biasa seperti gambar . Parameter

    %":@ dari tag 9F>?&+ diisi dengan ,ekps3d.php$ karena isian dari orm iniakan diperiksa oleh fle ,ekps3d.php.

    Listing T. File ,ekps3d.php

    97sessionGstart2-uname A GP>':IunameIJ-ps3d A mdKGP>':Ips3dIJ2-

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    5/7

    5

    host A lo,alhost-user A root-p3d A rahasia-db A datar-s*l A sele,t Q rom anggota 3here unameAIunameI-,onn A mys*lG,onne,thost$user$p3d2 or

    die!oneksi gagal ) . mys*lGerror22-mys*lGsele,tGdbdb2-*ry A mys*lG*uerys*l2 or

    die(uery salah ) . mys*lGerror22-num A mys*lGnumGro3s*ry2-ro3 A mys*lGet,hGarray*ry2-i numAA1 >? ps3dRAro3Ips3dIJ2 M

    headerLo,ation) sorry.php2-O else M

    G';''@IloginIJA8-headerLo,ation) main.php2-

    O7+

    File ,ekpass3d.php digunakan untuk memeriksa username dan pass3ordyang dimasukkan pada fle login.php. Pada fle ini mulai diinisiasi sebuah session.Langkah selanjutnya adalah men,o,okkan username dan pass3ord dengan re,ordyang terdapat pada database. Eika username dan pass3ord itu tidak ,o,ok U bisausernamenya tidak terdatar atau pass3ordnya yang salah U maka skrip tersebutakan mengarahkan langkahnya menuju ke fle sorry.php$ tapi jika benar makaarahnya akan menuju ke fle main.php dan sebuah ariabel session diinisiasi.Pada skrip kita ariabel tersebut diberi nama G';''@VloginJ2. #ang berungsisebagai 5pengatur arah6 adalah ungsi header2. Fungsi header2 akanmemberikan output berupa H::P header yang harus diberikan sebelum ada tagH:&L apapun. leh karena output fle,ekps3d.php hanya H::P header saja$ maka fle ini tidak memiliki 5penampakanfsik6 pada bro3ser.

    Listing X. File main.php97sessionGstart2-iRissetG';''@IloginIJ22 M

    in,ludelogin.php2-O else M7+

    9H:&L+9H;%D+9:ut 9/%+9/B>D#+9/H:&L+

    97O

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    6/7

    6

    7+

    File main.php adalah fle yang akan dipanggil apabila username danpass3ord yang dimasukkan pada halaman login.php berhasil mele3ati 5satpam6,ekps3d.php. Lihat gambar K. File inilah yang nantinya bisa dikembangkan untukmenyusun aplikasiaplikasi 3eb yang diperuntukkan bagi mereka yang login.

    'ebelumnya pada bagian a3al dari fle ini diperiksa terlebih dahulu apakahariabel G';''@VloginJ sudah pernah diinisiasi dengan ungsi isset2.'eandainya belum$ itu artinya user yang mengakses halaman main.php belumlogin. Eika demikian$ maka orang tersebut akan 5diangkut6 menuju ke halamanlogin.php untuk login terlebih dahulu. %pakah mungkin user yang belum logindapat langsung menuju ke halaman main.php7 &ungkin saja apabila ia langsungmengetikkan 5http)//bla..bla..bla/main.php6 di bagian address bro3ser. >lehkarena itu harus diberi 5satpam6 agar user tersebut tidak main selonong saja.

    Eika seandainya aplikasi %nda terdiri dari beberapa halaman$ maka padaprinsipnya setiap halaman harus diberi skrip sebagai berikut)

    97sessionGstart2-iRissetG';''@IloginIJ22 M

    in,ludelogin.php2-O else M7+

    Di ba3ah skrip ini baru diberikan tagtag H:&L atau skrip PHP lain yangmenyusun aplikasi. Dengan demikian setiap halaman selalu memeriksa apakahariabel session G';''@IloginIJ telah diinisiasi. Eika belum$ maka redire,tionakan beraksi dan 5menendang6 user untuk kembali ke halaman login.php.

    Listing Y. File sorry.php

    9H:&L+9H;%D+9:D#+9/H:&L+

    File ini akan mun,ul apabila user salah memasukkan username atau pass3ordpada halaman login. Lihat gambar T. =ser tersebut dapat mengklik tombol ba,k dibro3ser untuk kembali ke halaman login dan memasukkan username danpass3ord yang benar.

    Listing S. File logout.php

    97sessionGstart2-unsetG';''@IloginIJ2-sessionGdestroy2-headerLo,ation) login.php2-7+

    File ini digunakan untuk melakukan proses logout. Pada fle ini ariabelG';''@IloginIJ dihilangkan sekaligus bersama dengan sessionnya. Langkah

  • 5/18/2018 Contoh 3. Fitur Login-Logout Halaman Web Dengan PHP

    7/7

    7

    selanjutnya adalah mengarahkan aplikasi ke halaman login.php. 'etelah sessiondihilangkan$ maka user harus login lagi untuk dapat mengakses aplikasi tersebut.

    Pada dasarnya ungsi header2 tidak harus mengarahkan aplikasi ke flelogin.php. Bisa saja %nda membuat sebuah fle lain yang bernama goodbye.phpmisalnya yang isinya adalah u,apan perpisahan.

    @ah$ selamat belajar mengembangkan aplikasi dengan menggunakan ftur

    login/logout.