Membuat Thumbnail Image di PHP

Haloo…

Aku ikut2an nyumbang postingan yah…

Seringkali kita mencoba mengecilkan suatu image yang kita ambil dari data di database agar dapat ditampilkan di website sesuai kehendak kita…Kita dapat mengecilkannya dengan mensetting width dan height di HTML secara langsung. Akan tetapi timbul permasalahan apabila yang ingin kita buata adalah web dinamis yang ukuran image aslinya berbeda-beda smentara kita harus mengecilkan image dengan ukuran yang konsisten/dengan kata lain membuat thumbnail. Pernah liat friendster khan…??di friend image gitu khan pake prinsip thumbnail…Aku coba sharing aja mengenai fungsi thumbnail punyaku…

Gini kodenya

file thumnail.func.php

<?php
function thumbnail_dimas($width,$height){

/* maksimal thumbnail yang dibuat */
$max_width = 75;
$max_height = 75;

/* memaksimalkan lebar apabila lebih panjang lebar */
if($width>$max_width){
$scale = (float)$max_width/(float)$width;
$width = (int) $width*$scale;
$height = (int) $height*$scale;
}

/* memaksimalkan tinggi apabila lebih panjang tinggi */
if($height>$max_height){
$scale = (float)$max_height/(float)$height;
$width = (int) $width*$scale;
$height = (int) $height*$scale;
}

/* memastikan jika gambar kecil banget */
if($width<2){
$width = 2;
}
if($height<2){
$height = 2;
}

return array($width,$height);
}
?>

fungsi di atas akan membuat ukuran thumnail width=maks 75 dan height juga 75, jadi image itu tidak akan discretch, tetapi menyesuaikan mana dulu yang nyampe 75(height atau widthnya)

kemudian file tersebut akan dipanggil oleh file utama dengan kode :

<?

include(“thumnail.func.php”);

while($data3=mysql_fetch_row($sql3)) //===================>> INI UNTUK SECONDARY FOTO
{
list($image_width,$image_height) = GetImageSize(“$data3[0]“); //==========>> FUNGSI SCALE IMAGE
list($thumb_width,$thumb_height) = thumbnail_dimas($image_width,$image_height);
echo “<img src=\”$data3[0]\” height=\”$thumb_height\” width=\”$thumb_width\” /> “;
}
?>

$data3=adalah data image yang diperoleh dari database.

Semoga dengan sample code di atas teman2 bisa membuata thumnail image untuk ukuran gambar berapapun menjadi thumbnail yang ukurannya tetap konsisten….

Thnx so much, just in vixio

Ditulis dalam PHP. Tag: , . 1 Komentar »

Membuat CAPTCHA dengan PHP

Sering mendapatkan SPAM di guestbook Anda? Jangan heran, karena SPAMMER memang sangat merajalela, terutama dengan bantuan bot yang bisa bekerja secara otomatis tanpa campur tangan manusia. Salah satu cara untuk mengatasi SPAM pada guestbook adalah dengan menggunakan CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart), sebuah tes yang diharapkan mampu membedakan antara manusia dan robot. Bentuk implementasinya bisa bermacam-macam, akan tetapi yang paling banyak digunakan adalah dengan menggunakan gambar.

Berikut ini kode yang perlu Anda tambahkan pada bagian awal dari halaman guesbook Anda:

include "fungsi.php";
session_start();
$_SESSION['random-words'] = generate_word();

Baris pertama digunakan untuk menyertakan file captcha.php yang akan berisi fungsi untuk menghasilkan gambar yang kita perlukan. Baris kedua digunakan untuk menjalankan session. Baris ketiga untuk mengacak kata (kita menggunakan fungsi generate_word) yang hendak dibuat dalam bentuk gambar. Kata ini kita simpan pada session yang nanti akan kita gunakan untuk verifikasi.

Berikutnya pada bagian form untuk guestbook, tambahkan kode dibawah ini
Code :

Code

Isi dari file fungsi.php:

function generate_word()
{
$input = array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$rand_keys = array_rand($input, count($input));
$hash=$input[$rand_keys[0]] . $input[$rand_keys[1]] . $input[$rand_keys[2]] . $input[$rand_keys[3]] . $input[$rand_keys[4]] . $input[$rand_keys[5]] . $input[$rand_keys[6]] . $input[$rand_keys[7]];
return $hash;
}

Inti dari fungsi ini hanyalah mengambil 8 karakter alphanumerik yang kita simpan sebagai array secara acak dan menggabungkannya sebagai sebuah string. Pada contoh ini dibatasi hanya 8 karakter, akan tetapi bisa disesuaikan dengan kebutuhan. Mudah bukan?

Sekarang pada bagian verifikasinya. Karena kata awal tadi sudah tersimpan pada session, maka yang perlu kita bandingkan hanyalah input yang dikirimkan user dengan nilai dari session yang tadi sudah kita buat di awal

if ($code != $_SESSION['random-words'])
{
echo "Kode Tidak Cocok!";
}
else
{
echo "Kode Cocok!";
}

Lalu bagaimana dengan pembuatan gambarnya sendiri? Cukup mudah!! Buat file bernama captcha.php yang berisi

session_start();
header("Content-type: image/png");
$image = imagecreate(80, 15);
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 20, 0, 0, $_SESSION['random-words'], $text_color);
imagepng($image);
imagedestroy($image);

Baris 1 digunakan untuk menjalankan session. Perintah ini diperlukan, karena kita perlu mengakses nilai yang tersimpan pada session (informasi kata yang hendak dikonversi kedalam bentuk gambar).
Baris 2 digunakan untuk menentukan tipe data yang akan dihasilkan oleh halaman ini. Pada contoh ini tipe data yang dipakai adalah citra dengan format PNG (Anda bisa mengganti dengan JPEG atau format gambar yang lain).
Baris 3 digunakan untuk membuat sebuah palet gambar dengan ukuran yang telah ditentukan.
Baris 4 digunakan untuk mengalokasikan warna background untuk gambar (disini kita memilih warna putih)
Baris 5 digunakan untuk mengalokasikan warna untuk teks (warna hitam)
Baris 6 digunakan untuk membuat sebuah teks dengan warna dan ukuran font yang telah ditentukan (dipakai 20)
Baris 7 digunakan untuk membuat gambar yang dimaksud
Baris 8 digunakan untuk mengapus resource yang telah dibuat

Hasilnya bisa dilihat dibawah:

Captcha

Contoh diatas merupakan versi paling sederhana. Jika Anda berminat, Anda bisa menambahkan berbagai efek yang mampu mempersulit pembacaan, seperti dengan menambahkan berbagai efek-efek lain yang biasa Anda temui pada implementasi CAPTCHA pada berbagai situs besar.

Selamat berkreasi dengan CAPTCHA….

Ditulis dalam PHP. Tag: , . 16 Komentar »

Paging Halaman Menggunakan PHP

Artikel kali ini akan membahas bagaimana caranya untuk paging halaman menggunakan PHP. Jika anda pernah membuat aplikasi dengan menggunakan php maka anda mungkin pernah menampilkan data news atau produk dalam halaman, jika jumlah news atau product yang ditampilkan puluhan atau bahkan ratusan maka jika ditampilkan hanya dalam satu halaman akan menyulitkan user dalam melihat atau mencari data yang diinginkan.

Solusi yang dapat digunakan untuk menyelesaikan masalah ini adalah dengan menggunakan paging, dengan paging maka anda dapat menampilkan content per jumlah yang anda inginkan (tidak harus semua content ditampilkan). Misal dalam aplikasi contoh yang saya buat akan ditampilkan berita yang diambil dari tabel berita didatabase, berita tersebut akan ditampilkan per 3 berita dalam satu halaman. Adapu kode lengkapnya sebagai berikut:

Pertama buat variabel halaman yang akan menampung nilai halaman ke berapa yang akan ditampilkan

$hal = $_GET[hal];

if(!isset($_GET['hal'])){
    $page = 1;
} else {
    $page = $_GET['hal'];
} 

Baca entri selengkapnya »

Ditulis dalam PHP. Tag: , . 5 Komentar »

Upload File dengan PHP

Artikel kali ini akan membahas bagaimana cara untuk mengupload file kedalam web app anda.

Pertama kali buat halaman untuk memasukan file yang akan anda upload dengan nama upload.html, kodenya sebagai berikut:

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form method="post" enctype="multipart/form-data" action="prosesupload.php">
Upload File : <input type="file" name="userfile" />
<input type="submit" name="action" value="Upload" />
</form>
</body>
</html>

image

Ketika tombol submit ditekan maka file prosesupload.php akan segera dipanggil, file ini berisi kode php yang akan mengupload file kedalam web app anda. Adapun kode lengkap dari program tersebut:

Baca entri selengkapnya »

Ditulis dalam PHP. Tag: , . 4 Komentar »