Minggu, 30 September 2012

Membuat koneksi database mysql dengan php



Membuat koneksi database mysql dengan php
Silahkan copy kode berikut ke notepad atau editor lainnya :
<?php
//INI FILE KONFIGURASI UTAMA
$nama_server="localhost"; //setting nama server
$nama_database="db_tokoonline"; //setting nama database
$nama_user="root"; //setting nama user
$pass_user=""; //setting password
mysql_connect($nama_server,$nama_user,$pass_user) or die("<h1 align=center>Gagal</h1>");
//melakukan koneksi ke server dengan nama user dan password yang sudah dibuat

mysql_select_db($nama_database) or die("<h1 align=center>Gagal</h1>");
//memilih database yang akan digunakan
?>
Kemudian simpan dengan nama config.php
Untuk menggunakan file config tersebut, anda buat file baru lagi dan dan dibaris paling atas tambahkan perintah berikut :
<?php
   include("config.php");
?>

Sabtu, 29 September 2012

Membuat pesan error sendiri dengan php




Membuat pesan error sendiri dengan php
pesan error dalam php
Jangan kaget melihat pesan error diatas, itu hanya sebuah ilustrasi pesan error yang dimunculkan oleh php
Pesan error yang sering kita temui di lingkungan pemrograman php sangat beragam tergantung proses apa yang sedang dilakukan. Contoh paling gampang seperti gagalnya melakukan koneksi database, gagalnya menjalankan query, atau salahnya penggunaan sebuah function. Secara mendasar memang semua error akan muncul dilayar tanpa diminta dengan format seadanya (bawaan php). Bagaimana jika kita ingin membuat bentuk tampilan error sendiri?? ini bisa kita lakukan selama yang salah bukan cara penulisan phpnya.
Biasanya penanganan error dalam php bisa dilakukan dengan menambahkan perintah :
die("Pesan error")
pada setiap perintah yang rawan dengan error. Akan tetapi kadang perintah itu kurang manjur sehingga error akan tetap muncul seperti wujud aslinya seperti gambar yang ada diatas. Contoh penggunaan die() :
mysql_query("select * from tb_barang") or die("gagal : ".mysql_error());
jika ada kesalahan pada query maka akan muncul tulisan gagal trus pesan errornya.
Secara umum setiap error yang terjadi dalam php akan mengembalikan beberapa nilai balik kepada program/browser, yaitu :
  1. $number - yaitu nomor pesan error yang terjadi lihat referensi error
  2. $string - pesan keterangan error
  3. $file - nama file yang sedang dijalankan
  4. $line - nomor baris file yang sedang dijalankan
  5. $context - jenis pesan kesalahan
Dalam php tersedia yang namanya fungsi set_error_handler ini digunakan untuk mengarahkan sebuah pesan kesalahan yang terjadi. Dengan fungsi ini pula kita bisa melakukan antisipasi apa yang akan dimunculkan jika terjadi kesalahan. Memang fungsi ini jarang sekali digunakan karena kita umumnya mencoba memperbaiki kesalahan programnya. Tapi pada kondisi tertentu, kesalahan tidak terkontrol karena belum ditemukan pada saat pembuatan sehingga pesan akan muncul apa adanya. Ini sebenarnya wajar, tapi dari segi pengembangan mungkin akan sulit karena yang menemui error terkadang tidak kita langsung, jadi mengetahuinya lewat laporan si pengguna.
Bagaimana mengambil semua nilai balik dari terjadinya error??
Untuk semua kesalahan selain penulisan kode php dan kesalahan hasil proses, kita bisa lacak dengan membuat fungsi sendiri yang di sisipkan pada fungsi set_error_handler.
fungsi yang dibuat cukup sederhana, kita lihat berikut :
function PesanErrorPHP($number,$string,$file,$line,$context)
{
    echo "<h2 text-align:\"center\">".$string."</h2>";
}
Kemudian dibagian awal program tambahkan :
set_error_handler('PesanErrorPHP', E_ALL);
Dengan cara seperti ini semua pesan kesalahan akan dialihkan ke fungsi PesanErrorPHP. Ini contoh lengkapnya :
<?php
set_error_handler('pesansalah');
function pesansalah($number,$string,$file,$line,$context)
{
    echo "<h2 style=\"text-align:center;color:red;\">".$string."</h2>";
    //proses simpan catatan error
    //proses pindah halaman
}
//uji coba kesalahan
$file=fopen("welcome.txt","r");
unlink("file.txt");
$a=substr($a);
mysql_connect("localhost","root","salahaja");
mysql_query("select * from contoh");
?>
Kode php diatas jika dijalankan akan memunculkan pesan salah yang ditampilkan dengan format heading 2 warna merah dan menunjukkan kesalahan pada baris-baris uji coba. Berikut ini hasil pesan error yang bisa kita munculkan :
pesan error sendiri dengan php
Pada bagian penanganan kesalahan, kita bisa tambahkan bermacam proses misal menyimpan catatan kesalahan, atau memindahkan halaman atau yang lainya.

Jumat, 28 September 2012

ail dengaMembuat thumbnn php



ail dengaMembuat thumbnn php

Istilah kata thumbnail diartikan sebagai versi kecil dari sebuah gambar yang ditampilkan di komputer. Thumbnail ini digunakan untuk menggantikan gambar yang memiliki ukuran besar sehingga dapat ditampilkan lebih kecil dan cepat ke layar.
Untuk membuat thumbnail ini saya menggunakan sebuah class yang isinya berupa function serta rutin-rutin yang melakukan duplikat gambar dengan ukuran tertentu dari sebuah alamat gambar. Lihat kode class berikut :
class thumbnailGenerator {

    var $allowableTypes = array(
        IMAGETYPE_GIF,
        IMAGETYPE_JPEG,
        IMAGETYPE_PNG
    );

    public function imageCreateFromFile($filename, $imageType) {

        switch($imageType) {
            case IMAGETYPE_GIF  : return imagecreatefromgif($filename);
            case IMAGETYPE_JPEG : return imagecreatefromjpeg($filename);
            case IMAGETYPE_PNG  : return imagecreatefrompng($filename);
            default             : return false;
        }

    }

    /**
     * Generates a thumbnail image using the file at $sourceFilename and either writing it
     * out to a new file or directly to the browser.
     *
     * @param string $sourceFilename Filename for the image to have thumbnail made from
     * @param integer $maxWidth The maxium width for the resulting thumbnail
     * @param integer $maxHeight The maxium height for the resulting thumbnail
     * @param string $targetFormatOrFilename Either a filename extension (gif|jpg|png) or the
     *   filename the resulting file should be written to. This is optional and if not specified
     *   will send a jpg to the browser.
     * @return boolean true if the image could be created, false if not
     */
    public function generate($sourceFilename, $maxWidth, $maxHeight, $targetFormatOrFilename = 'jpg') {

        $size = getimagesize($sourceFilename); // 0 = width, 1 = height, 2 = type

        // check to make sure source image is in allowable format
        if(!in_array($size[2], $this->allowableTypes)) {
            return false;
        }

        // work out the extension, what target filename should be and output function to call
        $pathinfo = pathinfo($targetFormatOrFilename);
        if($pathinfo['basename'] == $pathinfo['filename']) {
            $extension = strtolower($targetFormatOrFilename);
            // set target to null so writes out to browser
            $targetFormatOrFilename = null;
        }
        else {
            $extension = strtolower($pathinfo['extension']);
        }

        switch($extension) {
            case 'gif' : $function = 'imagegif'; break;
            case 'png' : $function = 'imagepng'; break;
            default    : $function = 'imagejpeg'; break;
        }

        // load the image and return false if didn't work
        $source = $this->imageCreateFromFile($sourceFilename, $size[2]);
        if(!$source) {
            return false;
        }

        // write out the appropriate HTTP headers if going to browser
        if($targetFormatOrFilename == null) {
            if($extension == 'jpg') {
                header("Content-Type: image/jpeg");
            }
            else {
                header("Content-Type: image/$extension");
            }
        }

        // if the source fits within the maximum then no need to resize
        if($size[0] <= $maxWidth && $size[1] <= $maxHeight) {
            $function($source, $targetFormatOrFilename);
        }
        else {

            $ratioWidth = $maxWidth / $size[0];
            $ratioHeight = $maxHeight / $size[1];

            // use smallest ratio
            if($ratioWidth < $ratioHeight) {
                $newWidth = $maxWidth;
                $newHeight = round($size[1] * $ratioWidth);
            }
            else {
                $newWidth = round($size[0] * $ratioHeight);
                $newHeight = $maxHeight;
            }

            $target = imagecreatetruecolor($newWidth, $newHeight);
            imagecopyresampled($target, $source, 0, 0, 0, 0, $newWidth, $newHeight, $size[0], $size[1]);
            $function($target, $targetFormatOrFilename);
        }
        return true;
    }
}
Class diatas mempu menduplikat gambar dengan jenis png, jpg atau gif dengan hasil output standard dalam format jpg.
Cara penggunaan class
 Berikut ini contoh penggunaan untuk output standard dengan ukuran 100 x 100 pixel:
<?php
  include("thumbnailGenerator.php");
  $tg = new thumbnailGenerator;
  $gambar="photoku.jpg";
  $tg->generate($photoku, 100, 100);
?>
Kita juga bisa membuat hasil output dengan format berbeda seperti png/gif dengan cara :
<?php
  include("thumbnailGenerator.php");
  $tg = new thumbnailGenerator;
  $gambar="photoku.jpg";
  $tg->generate($photoku, 100, 100,'png');
?>
Contoh diatas melakukannya secara langsung tanpa menyimpan file versi kecilnya dalam file, jadi hanya menampilkkanya di browser. Untuk melakukan duplikat gambar dalam versi kecilnya dan disimpan dalam file berbeda bisa dilakukan dengan cara berikut :
<?php
  include("thumbnailGenerator.php");
  $tg = new thumbnailGenerator;
  $gambar="photoku.jpg";
  $tg->generate($photoku, 100, 100,'photoku-kecil.jpg');
?>
Dengan penggunaan thumbnail, proses menampilkan gambar dengan ukuran-ukuran yang besar bisa dikurangi karena yang dikirim ke browser hanya versi kecilnya saja sehingga proses tampilnya gambar akan lebih cepat.
Anda bisa bayangkan jika kita memiliki photo-photo dengan ukuran 1000 pixel lebih harus ditampilkan dalam browser pasti akan memerlukan waktu lama karena harus didowload lebih dahulu. Anda bisa padukan cara thumbnail ini dengan aplikasi-aplikasi php yang anda buat seperti aplikasi karyawan dengan photo, proses upload gambar, atau aplikasi mahasiswa dengan php seperti toturial saya sebelumnya.