2008/08/03

Adaptasi dari PHPTriad ke server

Problem 1: register_globals
Server http://mahasiswa.unikom.ac.id, menggunakan seting register_globals Off.
Sedangkan PHPTriad yang dipakai oleh anda mengeset variable ini menjadi On. Itu
artinya semua data yang diambil dari luar php (seperti dari form baik method post atau
get) dapat dipanggil dengan simpel yaitu $namavariabel.
Pemanggilan variable seperti di atas dapat mengakibatkan komputer anda dapat di hack
oleh orang lain.

Contoh Kasus :
if(($user=="andri")&&($pass=="unikom"))
$loginsukses=true;
if($loginsukses)//if($loginsukses==true)
{
include("menu.php");
}
?>

Perintah di atas berguna untuk mengecek apakah user dan password yang dimasukan
telah benar. Jika user dan password sesuai maka itu berarti login telah sukses
($loginsukses=true).
Kelemahan dari program di atas adalah jika file tersebut dipanggil seperti berikut :
http://localhost/login.php?loginsukses=1 atau
http://localhost/login.php?loginsukses=true,
Jika anda memanggil seperti di atas, maka secara langsung akan masuk ke menu.php
yang seharusnya menu.php hanya ditampilkan kalau orang tersebut telah melalui proses
login.
Untuk menghindari hal tersebut, maka sebaiknya konfigurasi php yang telah ada anda
rombak sedikit yaitu di bagian register_globals. Caranya adalah :
Buka File yang ada di C:\apache\php\php.ini
Cari register_globals sekitar baris 302 (kalau PHPTriad yang anda pakai berasal dari
CD E-Commerce yang telah dibagikan.
Kemudian ganti tulisan On dengan Off (register_globals = Off)
Simpan file tersebut
Mengklik Restart Apache atau secara manual yaitu dengan cara Stop Apache
kemudian Start Apache lagi.
Halaman - 1
Adaptasi dari PHPTriad ke server di http://mahasiswa.unikom.ac.id
Oleh Andri Heryandi
Dengan menganti konfigurasi di atas, maka script program pun akan anda ganti sedikit,
yaitu :
Setiap variable yang didapat dari form dengan method POST, cara pemanggilannya
adalah dengan perintah $_POST[‘namavariabel’]
Setiap variabel yang didapat dari form dengan method GET, cara pemanggilannya
adalah dengan cara $_GET[‘namavariabel’]
Setiap variabel yang didapat dari cookie, maka cara pemanggilannya adalah dengan
cara $_COOKIE[‘namavariabel’]
Setiap variabel yang didapat dan disimpan di session, maka cara pemanggilannya
adalah $_SESSION[‘namavariabel’]
Setiap variabel yang berupa file dapat dipanggil dengan nama
$_FILES[‘namavariabel’].
Jika anda tidan ingin memperhatikan suatu variabel itu didapat dari method POST
atau GET, maka gunakanlah perintah $_REQUEST[‘namavariabel’].
Contoh program [dalam server yang register_globals = On]
$query="insert into bukutamu values(now(),
'$nama','$alamat','$email','$pesan')";
$hasil=mysql_query($query);
...
dan seterusnya
...
?>

Program tersebut harus dirombak jika dijalankan di server yang register_globals = Off.
Cara 1:
$query="insert into bukutamu values(now(),
'$_POST[nama]','$_POST[alamat]',
'$_POST[email]','$_POST[pesan]')";
$hasil=mysql_query($query);
...
dan seterusnya
...
?>


Cara 2:
$nama=$_POST['nama'];
$alamat=$_POST['alamat'];
$email=$_POST['email'];
$pesan=$_POST['pesan'];
$query="insert into bukutamu values(now(),
'$nama','$alamat','$email','$pesan')";
$hasil=mysql_query($query);
...
dan seterusnya
...
?>


Cara 3:
$query="insert into bukutamu values(now(),
'$_REQUEST[nama]','$_REQUEST[alamat]',
'$_REQUEST[email]','$_REQUEST[pesan]')";
$hasil=mysql_query($query);
...
dan seterusnya
...
?>

Cara 4:
$nama=$_REQUEST['nama'];
$alamat=$_REQUEST['alamat'];
$email=$_REQUEST['email'];
$pesan=$_REQUEST['pesan'];
$query="insert into bukutamu values(now(),
'$nama','$alamat','$email','$pesan')";
$hasil=mysql_query($query);
...
dan seterusnya
...
?>

Problem 2: mysql berbasis linux.
Mysql yang di http://mahasiswa.unikom.ac.id berbasis sistem operasi Linux. Dalam
sistem operasi linux, penamaan file bersifat case sensitive (huruf kapital dan huruf kecil
dianggap sama). Sehingga bisa diperbolehkan dalam satu folder berisi file pesan.txt dan
Pesan.txt (hanya beda pada huruf pertama).
Dalam mysql, suatu database merupakan sebuah folder, dan tabel disimpan dalam bentuk
file.
Oleh karena itu, ketika anda membuat tabel, men-select table, meng-update table, meng-
delete table, maka nama tabel harus sama dengan nama tabel ketika dibuat.
Oleh karena itu, biasakan mulai dari sekarang, buatlah tabel dan field dengan
konsisten, misalnya dengan hanya menggunakan huruf kecil saja. Sehingga
kesalahan akibat filenya (tabel) tidak ditemukan dapat dikurangi.

by:Andri Heryandi

Tidak ada komentar:

News Update

Anda mau membeli atau mencari Buku?


Masukkan Code ini K1-39C35C-1
kutukutubuku.com
Anda malas datang langsung ke toko buku pada saat anda ingin membeli buku,gak usah khawatir anda bisa langsung pesan buku yang anda inginkan hanya dengan melalui website http://kutukutubuku.com.Anda cukup mengisi identitas diri anda dan buku yang anda inginkan.

Berita IT dan Artikel

News Liputan6

Computer Science

Gallery

  Gallery (Friend's 4ever )