PHP tetap menyimpan data gambar ke Folder Server, padahal ada salah satu data di formulir yang error

ROOT93 -  Ada berbagai macam teknik yang digunakan seseorang untuk menyimpan sebuah data gambar pada sebuah website / aplikasi, salah satu cara yang termudah adalah menyimpan filenya folder server, dan nama filenya ke database MySQL


Suatu hari saya mengalami sebuah masalah dimana, data gambar tetap terupload meskipun ada nilai atau salah satu parameter yang salah didalam formulir. Namun data atau nilai – nilai parameter yang dikirimnya tidak tersimpan ke database, jadi hanya data gambarnya saja yang terupload. Tentu saja ini sebuah kesalahan, karena harusnya ketika ada data yang salah maka tidak boleh ada parameter yang tereksekusi atau tersimpan baik ke folder server ataupun database.

Sebelum data di insert ke database, maka akan ada pengecekan seperti berikut ini . Contoh

#kode pengecekan sebelum insert
if(empty($kode_daftar_err) && empty($no_rekening_err) && empty($nama_bank_err) && empty($pesan_tambahan_err) && empty($bukti_pembayaran_err)){

Ketika adal satu data yang error misalnya kode daftar, maka otomatis eksekusi ke perintah selanjutnya akan dihentikan.

Nah disini justru file gambar tetap di eksekusi atau disimpan ke folder server. Setelah diperiksa ternyata ada perintah eksekusi sebelum parameter berikut kodepengecekan diatas. Jadi didalam percabangan atau pada validasi gambar, ketika gambar/foto berhasil divalidasi saya menyimpannya ke dalam variabel, contoh :

$bukti_pembayaran=move_uploaded_file($tmp_dir,$upload_dir.$itempic3);

Parameter diatas sebetulnya benar, tapi sayangnya ditempatkan sebelum kode pengecekan, sehingga ketika ada salah satu data yang error maka yang terjadi adalah, perintah move_uploaded_file() akan tetap tereksekusi

Supaya perintah tersebut tidak tereksekusi, maka didalam percabangan untuk validasi gambarnya, kita set saja nilai variabel benarnya misalnya jadi

$bukti_pembayaran=$tmp_dir;
Setelah itu sisanya untuk fungsi move uploadnya kita tambahkan didalam execute atau setelah proses pengecekan kode insert, sehingga menjadi seperti berikut ini. Contoh

if(execute($stmt)&& (move_uploaded_file($bukti_pembayaran,$upload_dir.$itempic3))){
bla bla…

Intinya kesalahan ini terjadi akibat parameter move_uploaded_file() kita eksekusi sebelum paramater pengecekan data sebelum insert, sehingga akhirnya data gambar tetap terupload meskipun ada beberapa nilai di formulir yang salah 
(Ahmad Zaelani / root93)


1 Response to "PHP tetap menyimpan data gambar ke Folder Server, padahal ada salah satu data di formulir yang error"

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin