pengesahan dan mengalihkan halaman...

biasanya teknik ini digunakan untuk website yang mempunyai satu atau lebih user grup, setiap user dibatasi oleh haknya untuk mengakses modul-modul tertentu.

misalnya saja pada sebuah sistem perguruan tinggi:
-grup mahasiswa hanya boleh mengakses modul matakuliah,nilai,khs,krs dll.
-grup staff hanya boleh mengakses kemahasiswaan,spp dll

cara yang umum dipakai untuk melakukan authentication yaitu dengan membaca user grup yang sedang aktif dan membaca halaman yang sedang aktif;

dua komponen ini merupakan bagian utama (selain session ID) untuk melacak hak seseorang untuk mengakses modul tertentu.

sehingga mahasiswa tidak bisa sembarangan masuk kedalam modul kemahasiswaan dll.

caranya sederhana:
--------------------
1. gunakan variable penampung user grup dari database tertentu
2. baca halaman yang sedang aktif
3. buat fungsi compare_modul resultnya true bila ditemukan false bila tidak ditemukan.
4. bandingkan id halaman tersebut ke user grup tersebut
5. bila tidak sesuai berarti user tersebut tidak berhak maka lakukan redirect pages
6. selesai.

penjelasan:
  • untuk menampung variable user grup biasanya disimpan pada modul utama program yang akan dibaca disetiap modul.
ex : $usergrup=01 <= (01 asumsi hasil query grup)
  • membaca halaman aktif dapat dilakukan dengan mengambil nilai default server
ex : $url=$_SERVER["HTTP_HOST"].$SERVER["PHP_SELF"];

$_SERVER["HTTP_HOST"] -> untuk mendapatkan server aktif
$SERVER["PHP_SELF"] ->untuk mendapatkan modul yang sedang digunakan

dengan demikian kita mendapatkan url yang sedang aktif dan disimpan didalam
variable $url.
  • tujuan utama pembuatan fungsi compare_modul adalah untuk membandingkan modul yang sedang diakses dengan user yang sedang aktif.
ex:
function compare_modul($url,$usergrup){
$sql-> lakukan query menurut struktur database yang digunakan
ex: "select a.sysgrup_kode,b.sysmodul_kode from sys_gmodul a,sys_modul b
where a.sysmodul_kode=b.sysmodul_kode and '$url'
like concat('%',b.sysmodul_path,b.sysmodul_url) bla bla blaa...."
$hsl=mysql_query($sql) or die(mysql_error());
$jbaris=mysql_num_rows($hsl);
return ($jbaris>0);
}
  • bila tidak sesuai maka lakukan redirect pages
ex:
$lokasifile="http://localhost";
if (!compare_modul){
header("Location:".$lokasifile."error/error_doc.html");
}

ya, biasanya syntax "header" digunakan untuk melakukan redirect page, umumnya
digunakan pada modul login, sehingga bila user melakukan kesalahan pada saat login
halaman akan dikembalikan lagi ke modul login.

dalam kasus ini bila hak tidak sesuai maka modul dialihkan kehalaman error_doc.html
isi error_doc.html bisa apa saja yang berhubungan dengan pesan bahwa user tidak
berhak mengakses modul tersebut.
  • selesai..

abdul fattah, lagi sendiri dengan asa tiada pasti..

Comments (0)