Setelah saya posting artikel beberapa waktu yang lalu tentang cara membuat random quotes dengan PHP, kali ini saya akan coba memaparkan bagaimana ide dan cara membuat random image.
Image yang kemunculannya akan dirandom ini nantinya disimpan ke dalam
database, dan bukan berdiri sendiri sebagai file dalam direktori atau
folder. Dalam hal ini user bisa mengupload image file ke server melalui
form. Dengan ditempatkannya image ke dalam database, maka tingkat
sekuriti dapat lebih aman karena kita tidak perlu meng-chmod 777 folder
di server sebagai tempat image diupload. Selain itu… biasanya banyak
hosting yang menyediakan fitur space MySQL yang unlimited, dibandingkan
space quota di server yang biasanya terbatas
Secara umum, ide untuk membuat random image ini sangat mudah.
Konsepnya adalah sebagai berikut: user mengupload image dari komputer
client ke server, tepatnya ke database. Selanjutnya untuk proses
mengacak imagenya kita gunakan function RAND()
yang ada di MySQL. Konsep ini hampir sama dengan membuat random quotes.
Tambahan lagi, untuk memunculkan image dari database ke browser, kita
memerlukan script khusus. Script khusus apa nih maksudnya? Simak
baik-baik artikel ini selanjutnya.
Seperti konsep yang telah kita tentukan di atas, pertama kali kita
coba membuat fitur untuk upload image ke database terlebih dahulu. Nah…
sekarang kita create terlebih dahulu tabelnya.
1.
CREATE
TABLE
tabelimage
2.
(
3.
id
INT
AUTO_INCREMENT,
4.
image LONGBLOB,
5.
PRIMARY
KEY
(id)
6.
);
OK.. next…
Sekarang kita coba buat script untuk upload imagenya.
upload.htm
1.
<
h1
>Upload Imageh1
>
2.
<
form
method
=
"post"
enctype
=
"multipart/form-data"
action
=
"simpan.php"
>
3.
Pilih image :
4.
<
input
type
=
"hidden"
name
=
"MAX_FILE_SIZE"
value
=
"100000"
><
br
/>
5.
<
input
name
=
"image"
type
=
"file"
>
6.
<
input
type
=
"submit"
value
=
"Submit"
name
=
"submit"
>
7.
form
>
Perhatikan pada komponen
. Atribut value="100000"
ini menunjukkan maksimum size dari image yang bisa diupload adalah
100Kb. Anda bisa memperbesar valuenya. Tapi dengan catatan: value ini
harus lebih kecil atau sama dengan nilai dalam parameter upload_max_filesize yang ada dalam konfigurasi PHP pada file php.ini. Default dari nilai parameter tersebut adalah 2Mb.
Selanjutnya kita buat script simpan.php nya.
simpan.php
01.
02.
03.
// membaca file yang diupload dan disimpan dalam TEMP
04.
$tmpName
=
$_FILES
[
'image'
][
'tmp_name'
];
05.
06.
// membuka isi file image yang disimpan dalam TEMP
07.
$fp
=
fopen
(
$tmpName
,
'r'
);
08.
09.
// membaca isi file image yang disimpan dalam TEMP
10.
// isi file image yang dibaca berupa string
11.
$dataimage
=
fread
(
$fp
,
filesize
(
$tmpName
));
12.
13.
// apabila ditemukan karakter slash pada string, maka akan diubah menjadi double slash
14.
// prosedur ini bila tidak dilakukan akan merusak image
15.
$dataimage
=
addslashes
(
$dataimage
);
16.
17.
// menutup file dalam TEMP yang telah dibaca
18.
fclose(
$fp
);
19.
20.
// koneksi ke MySQL
21.
mysql_connect(
'hostName'
,
'dbUserName'
,
'dbUserPass'
);
22.
mysql_select_db(
'dbName'
);
23.
24.
// query menyisipkan data image ke tabel
25.
$query
=
"INSERT INTO tabelimage(image) VALUES ('$dataimage')"
;
26.
$hasil
= mysql_query(
$query
);
27.
28.
// menampilkan konfirmasi sukses tidaknya upload
29.
if
(
$hasil
)
echo
"Upload image sukses"
;
30.
else
echo
"Upload image gagal"
;
31.
32.
?>
Sekarang… kita buat script untuk menampilkan random imagenya. Dalam hal ini yang dirandom adalah ID dari imagenya.
random.php
01.
02.
03.
// koneksi ke mysql
04.
mysql_connect(
'hostName'
,
'dbUserName'
,
'dbUserPass'
);
05.
mysql_select_db(
'dbName'
);
06.
07.
// query untuk merandom ID dari image
08.
$query
=
"SELECT id FROM tabelimage ORDER BY RAND()"
;
09.
$hasil
= mysql_query(
$query
);
10.
11.
echo
"']."'
/>";
12.
13.
?>
Untuk bisa menampilkan image yang dirandom, kita perlu membuat script
khusus (pada contoh ini adalah showimage.php). Nah… yang menjadi
masalah sekarang adalah bagaimana mengkaitkan antara ID image yang
dirandom dengan image yang akan ditampilkan. Masalah ini bisa dipecahkan
dengan menambahkan parameter id
di belakang script showimage.php nya pada tag
.
OK… selanjutnya bagaimana isi script showimage.php nya. Ini dia…
showimage.php
01.
02.
03.
// koneksi ke mysql
04.
mysql_connect(
'hostName'
,
'dbUserName'
,
'dbUserPass'
);
05.
mysql_select_db(
'dbName'
);
06.
07.
// membaca nilai dari parameter ID yang berasal dari URL: showimage.php?id=...
08.
09.
$id
=
$_GET
[
'id'
];
10.
11.
// menampilkan image berdasarkan ID imagenya
12.
13.
$query
=
"SELECT image FROM tabelimage WHERE id = $id"
;
14.
$hasil
= mysql_query(
$query
);
15.
$data
= mysql_fetch_array(
$hasil
);
16.
17.
// header untuk menampilkan image
18.
header(
'Content-type: image/jpeg'
);
19.
20.
// menampilkan data imagenya
21.
echo
$data
[
'image'
];
22.
23.
?>
Yah… begitulah caranya membuat random image dengan PHP. Anda bisa
menerapkan random image ini untuk membuat banner dalam rangka bisnis
online Anda atau yang lain.
Semoga artikel ini ada manfaatnya buat semua.
EmoticonEmoticon