Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE




Membuat Script Random Image dengan PHP


February 17th, 2009 | by rosihanari |


Jual kaos

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.

CREATE TABLE tabelimage
(
  id INT AUTO_INCREMENT,
  image LONGBLOB,
  PRIMARY KEY(id)
);

Perhatikan query di atas, bahwa untuk menyimpan data image kita perlu tipe data BLOB. Kalau tidak salah ada 3 jenis tipe data BLOB ini, yaitu TINYBLOB, MEDIUMBLOB dan LONGBLOB. Ketiganya dibedakan berdasarkan size data yang bisa tertampung. Selanjutnya, untuk ID, field ini diperlukan untuk pembeda antar image yang diupload. ID ini nanti yang akan dirandom oleh function RAND().

OK.. next…

Sekarang kita coba buat script untuk upload imagenya.

upload.htm

<h1>Upload Image</h1>
<form method="post" enctype="multipart/form-data" action="simpan.php">
Pilih image :
<input type="hidden" name="MAX_FILE_SIZE" value="100000"><br />
<input name="image" type="file">
<input type="submit" value="Submit" name="submit">
</form>

Perhatikan pada komponen <input type="hidden" name="MAX_FILE_SIZE" value="100000">. 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

<?php

// membaca file yang diupload dan disimpan dalam TEMP
$tmpName  = $_FILES['image']['tmp_name'];

// membuka isi file image yang disimpan dalam TEMP
$fp  = fopen($tmpName, 'r');

// membaca isi file image yang disimpan dalam TEMP
// isi file image yang dibaca berupa string
$dataimage = fread($fp, filesize($tmpName));

// apabila ditemukan karakter slash pada string, maka akan diubah menjadi double slash
// prosedur ini bila tidak dilakukan akan merusak image
$dataimage = addslashes($dataimage);

// menutup file dalam TEMP yang telah dibaca
fclose($fp);

// koneksi ke MySQL
mysql_connect('hostName','dbUserName','dbUserPass');
mysql_select_db('dbName');

// query menyisipkan data image ke tabel
$query = "INSERT INTO tabelimage(image) VALUES ('$dataimage')";
$hasil = mysql_query($query);

// menampilkan konfirmasi sukses tidaknya upload
if ($hasil) echo "Upload image sukses";
else echo "Upload image gagal";

?>

Sekarang… kita buat script untuk menampilkan random imagenya. Dalam hal ini yang dirandom adalah ID dari imagenya.

random.php

<?php

// koneksi ke mysql
mysql_connect('hostName','dbUserName','dbUserPass');
mysql_select_db('dbName');

// query untuk merandom ID dari image
$query = "SELECT id FROM tabelimage ORDER BY RAND()";
$hasil = mysql_query($query);

echo "<img src='showimage.php?id=".$data['id']."' />";

?>

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 <img>.

OK… selanjutnya bagaimana isi script showimage.php nya. Ini dia…

showimage.php

<?php

// koneksi ke mysql
mysql_connect('hostName','dbUserName','dbUserPass');
mysql_select_db('dbName');

// membaca nilai dari parameter ID yang berasal dari URL: showimage.php?id=...

$id = $_GET['id'];

// menampilkan image berdasarkan ID imagenya

$query = "SELECT image FROM tabelimage WHERE id = $id";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);

// header untuk menampilkan image
header('Content-type: image/jpeg');

// menampilkan data imagenya
echo $data['image'];

?>

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.


Kata kunci: image - PHP - random - script -


 

Komentar Anda ...