Selasa, 21 September 2010

Simple Login

Form login digunakan untuk memastikan user yang menggunakan aplikasi utama adalah user yang berhak. Contoh berikut adalah penggunaan form login dengan menggunakan database MySQL 5.1 dan konektor MySQL ODBC 5.1 Driver.

Sebelum menggunakan form tersebut pastikan telah dibuat dulu main program dengan nama main.prg dengan isi sebagai beikut :
*********************************************************************
set talk off
set dele on
set exclusive on
set safety off
set date short
PUBLIC koneksi, namakursor
koneksi=0
SET DATE BRITISH
SET CENTURY ON
SET EXCLUSIVE OFF
SET NOTIFY OFF
SET CARRY OFF
SET MULTILOCKS ON

lcLastSetPath=SET("PATH")
*CD "\co_program\"
SET PATH TO ;
clear all
DO FORM "c:/Co_Program/login.scx"
_screen.visible=.f.
read events
*************************************************
Serta harus dipastikan adanya tabel di MySql denan nama user column name c(10), pass c(10).
Buatlah property dengan nama baru,namakursor,koneksi.
Kemudian isilah script form login sebagai berikut :
*procedure init
ipdb="127.0.0.1"
userdb="root"
passdb="rahasia"
namedb="kopkarP"
SQLSETPROP(0,"DispLogin",3)
mstr = "DATABASE="+namedb+";SERVER="+ipdb+";port=3306;UID="+userdb+";PWD="+passdb+";provider=MSDASQLR;DRIVER={MySQL ODBC 5.1 Driver};"
THISFORM.Koneksi = SQLSTRINGCONNECT( mstr )
IF THISFORM.Koneksi <= 0
thisform.lbkonek.Caption="Koneksi Ke Server Database MySQL Gagal"
ELSE
thisform.lbkonek.Caption="Koneksi Ke Server Database MySQL Berhasil"
ENDIF
THISFORM.namakursor = "QT"+SUBSTR(SYS(2015), 5)
koneksi = thisform.koneksi
namakursor=thisform.namakursor
***************************************************************************
*Method tampil_data
SELECT ( namakursor )
THISFORM.text1.VALUE=pass
thisform.text2.Value=mac
THISFORM.REFRESH
***************************************************************************
*Procedure thisform.txtname.LostFocus
IF EMPTY( THISFORM.txtNAME.VALUE )
RETURN
ENDIF

IF Koneksi <= 0
=MESSAGEBOX("Anda Belum Koneksi Ke Server Database MySQL ", 0+16, "Konfirmasi")
QUIT
ELSE

mtf = namakursor
msql = "select * from user WHERE name = '" + THISFORM.txtname.Value + "';"
IF SQLEXEC(Koneksi, msql, "&mtf") <= 0
=MESSAGEBOX("Proses Query Ke MySQL Gagal", 0+16, "PESAN")
QUIT
RETURN
ENDIF

THISFORM.Baru = .T.
THISFORM.nilai_awal

IF USED("&mtf")
SELECT &mtf
GO TOP
IF !EOF()
THISFORM.Baru = .F.
THISFORM.tampil_data
ENDIF
ENDIF
RETURN
ENDIF
************************************************************
*Procedure cmd_ok.click

IF EMPTY( THISFORM.txtname.Value )
MESSAGEBOX("Username Harus diisi!!",0+48,"Perhatian")
THISFORM.Txtname.SETFOCUS()
RETURN
ENDIF
IF EMPTY( THISFORM.Txtpass.Value )
MESSAGEBOX("Password Harus diisi!!",0+48,"Perhatian")
THISFORM.Txtpass.SETFOCUS()
RETURN
ENDIF
SET EXACT ON
IF ALLTRIM(thisform.txtpass.Value)=ALLTRIM(thisform.text1.Value)
MESSAGEBOX('Anda mempunyai Hak Akses',0+64,'Informasi')
do FORM 'c:/co_program/main.scx' &&Jika user dan pass benar maka akan tampil form main.scx
THISFORM.RELEASE
ELSE
MESSAGEBOX('User atau Password salah',0+16,'Informasi')
ENDIF
************************************************************************
*Methode tampil_data
THISFORM.text1.VALUE = '/*56569as8*//656 '
THISFORM.REFRESH
************************************************************************
Keterangan :
object text1 ditampilkan visible=.F.

Demikian semoga membantu.

Tidak ada komentar:

Posting Komentar