Mengatasi bugs pada file content.php pada cms lokomedia v1

07 September 2010

Pada postingan saya yang sebelumnya dengan judul Bugs pada cms lokomedia versi 1 dijelaskan bahwa CMS Lokomedia memiliki bugs yang dapat mengakibatkan seorang yang belum login dapat masuk kehalaman admin.

Bugs ini penyebabnya adalah tidak digunakannya session pada pemanggilan file content.php sehingga siapapun dapat mengaksesnya sebagai seorang administrator/user.

Nah untuk dapat mengatasi bugs pada cms lokomedia cukup mudah anda hanya perlu menambahkan beberapa baris script pada file content.php
Pertama-tama carilah script berikut ini :

if ($_GET[module]=='home'){
Sebelum script tersebut tambahkanlah script berikut ini :
if($_SESSION[leveluser]=="admin")

{
Berikutnya carilah scrit berikut ini :
else{

echo "<p><b>MODUL BELUM ADA</b></p>";

}
Setelah script tersebut, tambahkanlah script berikut ini :
}
else
{
echo "<center><b>Anda Tidak Dapat Mengakses Halaman Ini</b></center>";
}
Nantinya secara keseluruhan script anda akan menjadi seperti ini :

<?php
  include "../config/koneksi.php";
  include "../config/library.php";
  include "../config/fungsi_indotgl.php";
  include "../config/fungsi_combobox.php";
  include "../config/class_paging.php";

if($_SESSION[leveluser]=="admin")
  {
  // Bagian Home
  if ($_GET[module]=='home'){
  echo "<h2>Selamat Datang</h2>
  <p>Hai <b>$_SESSION[namauser]</b>, silahkan klik menu pilihan yang berada
  di sebelah kiri untuk mengelola content website. </p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p align=right>Login Hari ini: ";
  echo tgl_indo(date("Y m d"));
  echo " | ";
  echo date("H:i:s");
  echo "</p>";
  }

// Bagian Profil Lembaga
  elseif ($_GET[module]=='profil'){
  $sql  = mysql_query("SELECT * FROM modul WHERE id_modul='11'");
  $r    = mysql_fetch_array($sql);

echo "<h2>Profil Lembaga</h2>
  <form method=POST enctype='multipart/form-data' action=aksi.php?module=profil&act=update>
  <input type=hidden name=id value=$r[id_modul]>
  <table>
  <tr><td><img src=foto_berita/$r[gambar]></td></tr>
  <tr><td>Ganti Foto : <input type=file size=30 name=fupload></td></tr>
  <tr><td><textarea name=isi cols=94 rows=30>$r[static_content]</textarea></td></tr>
  <tr><td><input type=submit value=Update></td></tr>
  </form></table>";
  }

// Bagian User
  elseif ($_GET[module]=='user'){
  include "modul/mod_user.php";
  }

// Bagian Modul
  elseif ($_GET[module]=='modul'){
  include "modul/mod_modul.php";
  }

// Bagian Agenda
  elseif ($_GET[module]=='agenda'){
  include "modul/mod_agenda.php";
  }

// Bagian Berita
  elseif ($_GET[module]=='berita'){
  include "modul/mod_berita.php";
  }

// Bagian Pengumuman
  elseif ($_GET[module]=='pengumuman'){
  include "modul/mod_pengumuman.php";
  }


// Bagian Banner
  elseif ($_GET[module]=='banner'){
  include "modul/mod_banner.php";
  }

// Bagian Hubungi Kami
  elseif ($_GET[module]=='hubungi'){
  include "modul/mod_hubungi.php";
  }

// Apabila modul tidak ditemukan
  else{
  echo "<p><b>MODUL BELUM ADA</b></p>";
  }
  }
  else
  {
  echo "<center><b>Anda Tidak Dapat Mengakses Halaman Ini</b></center>";
  }
  ?>

Dengan menggunakan script diatas yang bisa mengakses file content.php adalah hanya administrator saja. bagaimana jika anda ingin membuat jika modul bisa diakses oleh administrator dan user ?
Tinggal rubah scriptnya menjadi seperti berikut ini :

<?php
  include "../config/koneksi.php";
  include "../config/library.php";
  include "../config/fungsi_indotgl.php";
  include "../config/fungsi_combobox.php";
  include "../config/class_paging.php";

// Bagian Home
  if ($_GET[module]=='home'){
  if($_SESSION[leveluser]=="admin" OR $_SESSION[leveluser]=="user")
  {
  echo "<h2>Selamat Datang</h2>
  <p>Hai <b>$_SESSION[namauser]</b>, silahkan klik menu pilihan yang berada
  di sebelah kiri untuk mengelola content website. </p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p align=right>Login Hari ini: ";
  echo tgl_indo(date("Y m d"));
  echo " | ";
  echo date("H:i:s");
  echo "</p>";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian Profil Lembaga
  elseif ($_GET[module]=='profil'){
  if($_SESSION[leveluser]=="admin")
  {
  $sql  = mysql_query("SELECT * FROM modul WHERE id_modul='11'");
  $r    = mysql_fetch_array($sql);

echo "<h2>Profil Lembaga</h2>
  <form method=POST enctype='multipart/form-data' action=aksi.php?module=profil&act=update>
  <input type=hidden name=id value=$r[id_modul]>
  <table>
  <tr><td><img src=foto_berita/$r[gambar]></td></tr>
  <tr><td>Ganti Foto : <input type=file size=30 name=fupload></td></tr>
  <tr><td><textarea name=isi cols=94 rows=30>$r[static_content]</textarea></td></tr>
  <tr><td><input type=submit value=Update></td></tr>
  </form></table>";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian User
  elseif ($_GET[module]=='user'){
  if($_SESSION[leveluser]=="admin")
  {
  include "modul/mod_user.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian Modul
  elseif ($_GET[module]=='modul'){
  if($_SESSION[leveluser]=="admin")
  {
  include "modul/mod_modul.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian Agenda
  elseif ($_GET[module]=='agenda'){
  if($_SESSION[leveluser]=="admin" OR $_SESSION[leveluser]=="user")
  {
  include "modul/mod_agenda.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian Berita
  elseif ($_GET[module]=='berita'){
  if($_SESSION[leveluser]=="admin" OR $_SESSION[leveluser]=="user")
  {
  include "modul/mod_berita.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian Pengumuman
  elseif ($_GET[module]=='pengumuman'){
  if($_SESSION[leveluser]=="admin")
  {
  include "modul/mod_pengumuman.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }


// Bagian Banner
  elseif ($_GET[module]=='banner'){
  if($_SESSION[leveluser]=="admin")
  {
  include "modul/mod_banner.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Bagian Hubungi Kami
  elseif ($_GET[module]=='hubungi'){
  if($_SESSION[leveluser]=="admin")
  {
  include "modul/mod_hubungi.php";
  }
  else
  {
  echo "<center><b>Anda tidak dapat mengakses halaman ini</b></center>";
  }
  }

// Apabila modul tidak ditemukan
  else{
  echo "<p><b>MODUL BELUM ADA</b></p>";
  }
  ?>

Nah setelah anda ubah script pada file content.php cobalah akses kembali web dengan memanggil URLnya seperti berikut :

http://www.apaajadeh.com/admin/content.php?module=home

Hasilnya akan tampak seperti berikut ini :


Selamat mencoba.. Mengatasi bugs pada file content.php pada cms lokomedia v1SocialTwist Tell-a-Friend

6 comments:

Jiro Kobayashi said... Reply

Makasih atas info dan koreksinya pak..

Mohon bimbingannya kembali :)

GnouBdilS said... Reply

@jiro : sama sama :)
sekarang sudah di perbaiki belum situsnya?

Anonymous said... Reply

mau tnya file content.php pada awal nya sudah ada
if ($_GET[module]=='home'){
if ($_SESSION['leveluser']=='admin'){

tapi punya saya di bawah nya 'home' itu di ganti apa di biarkan sj ya

GnouBdilS said... Reply

@Anonymous:

Tergantung kebutuhannya..
Kalau hanya mau admin saja yang mengakses ga usah dirubah juga gapapa..
Tapi kalo mau user juga bisa akses tambahin aja OR $_SESSION[leveluser]=="user"

tapi yang terpenting cek ada ga bagian yang ini :


else
{
echo "<center><b>Anda Tidak Dapat Mengakses Halaman Ini</b></center>";
}


kalo ga ada wajib ditambahin..

victor said... Reply

oke pak admin , terima kasih info nya :)

GnouBdilS said... Reply

@victor:

sama-sama

Post a Comment

Artikel Lain

 
 
 

Go To Link

  »  A1VBCode
  »  Bina Sarana Informatika
  »  Blogger
  »  Deconstruction Code
  »  Diskusiweb
  »  dremi.info
  »  Echo
  »  Facebook
  »  Gary Abraham
  »  Ilmu Website
  »  JQuery
  »  Mahesajenar Widget
  »  STMIK Nusa Mandiri
  »  OOM Blog
  »  Planet Source Code
  »  Rahma Blog
  »  Terren Jr
  »  VB-Bego
  »  Herry Blog

Advertisement