Selain fungsi ctype, untuk menangani injeksi-injeksi yang marak di internet, maka digunakan fungsi_anti_injeksi yang dikembangkan sendiri selama
pengerjaan Tugas Akhir ini. Fungsi ini merupakan kombinasi beberapa fungsi PHP yang memang ditujukan untuk penanganan isi string yang cenderung
berbahaya. Script fungsi_anti_injeksi adalah sebagai berikut:
?php function anti_injectiondata
{ filter=mysql_real_escape_stringstripslashesstrip_tagshtm
lspecialcharsdata,ENT_QUOTES; return
filter; }
Fungsi htmlspecialchars bertujuan untuk mengkonversi semua karakter spesial yang terkandung di dalam data, yang merupakan parameter. Misalnya
karakter ‘’ dikonversi menjadi ‘amp’. Kemudian strip_tags bertujuan untuk menonaktifkan tag HTML atau tag PHP. Seringkali injeksi disisipkan di dalam
tag-tag HTML atau PHP. Fungsi stripslashes berguna untuk menghapus semua tanda double backslash \\. Dan fungsi mysql_real_escape_string berguna untuk
mengamankan query dari karakter seperti \x00, \n, \r, ‘, “, \x1a.
4.2. Database
Pembahasan pada sub bab Database ini akan dibagi-bagi sesuai dengan menunya masing-masing dengan tujuan mempermudah pemahaman akan
penggunaan setiap tabel.
4.2.1. Menu Analisa
Untuk menampilkan grafik perbandingan pendapatan dan pengeluaran perusahaan dari masing-masing unit digunakan query berikut:
SELECT sumnominal_transaksi AS nominal FROM transaksi where kode_unit=r[kode_unit] and date_formattanggal_input,m-
Y=bulan_tahun SELECT sumnominal_biaya AS nominal FROM biaya
where kode_unit=r[kode_unit] and date_formattanggal_biaya,m- Y=bulan_tahun
Query yang peertama mengakses tabel transaksi dan menghitung total pendapatan perusahaan selama bulan tertentu, sedangkan query kedua menghitung
total pengeluaran perusahaan. r[kode_unit] adalah kode unit usaha yang dihasilkan dari perulangan while. Pada menu-menu grafik yang lain, secara garis
besar query-nya sama dengan yang di atas, hanya saja pembatasan where-nya berbeda, disesuaikan dengan kebutuhan grafik antara bulan tertentu sampai bulan
tertentu atau antara tahun tertentu hingga tahun tertentu.
4.2.2. Menu Laporan dan Advance Report
Kedua menu ini sebenarnya memiliki query yang nyaris sama persis dengan query menu Analisa di atas. Hanya saja, jika pada menu Analisa hasil
eksekusi query tadi disajikan dalam bentuk grafik batang, maka dalam kedua menu ini hasilnya disajikan dalam bentuk laporan keuangan seperti pada
umumnya. Perbedaan antara menu Laporan dan Advance Report adalah pada statement where-nya. Hal itu dikarenakan pada menu Laporan, secara otomatis
laporan konsolidasi yang ditampilkan adalah laporan yang terjadi selama bulan ini. Sedangkan pada menu Advance Report, User dapat menentukan laporan
antara tanggal tertentu hingga tanggal tertentu yang ingin ditampilkan. Query adalah sebagai berikut:
SELECT SUMnominal_transaksi AS NOMINAL FROM transaksi WHERE date_formattanggal_input,m-Y=bulan_aktif
SELECT SUMnominal_biaya AS NOMINAL FROM biaya WHERE date_formattanggal_biaya,m-Y=bulan_aktif
AND kode_keluar=kode_keluar
Sama seperti menu Analisa, query yang pertama untuk menghitung total pendapatan dan yang kedua untuk mendapatkan total pengeluaran. Variabel
bulan_aktif menyimpan informasi bulan yang diambil dari tanggal sistem. kode_keluar dihasilkan dari perulangan while dan akan mneghasilkan total
pengeluaran yang dibagi-bagi menurut kategori biaya dari tabel Keluar. Pada menu Advance Report, query yang digunakan adalah:
SELECT SUMnominal_transaksi AS NOMINAL FROM transaksi WHERE tanggal_input BETWEEN tanggal_aktif tanggal_aktif 2
SELECT SUMnominal_biaya AS NOMINAL FROM biaya WHERE kode_keluar=kode_keluar
AND tanggal_biaya BETWEEN tanggal_aktif tanggal_aktif2
Variabel tanggal_aktif adalah tanggal yang ditentukan oleh User sebagai tanda awal mulainya laporan. Sedangkan tanggal_aktif2 adalah tanggal yang
ditentukan sebagai tanggal akhir laporan.
4.2.3. Menu Transaksi