Showing posts with label php tutorial. Show all posts
Showing posts with label php tutorial. Show all posts

Monday, January 26, 2009

Error Allowed memory size dan PHP.ini

Masalah ini mungkin adalah bug PHP yang sampai saat ini masih ditemukan. ketika anda mengupload file atau menjalankan salah satu fungsi image biasanya akan memakan memory ketika diproses. pernahkan anda mengalami error seperti ini  
Fatal error: Allowed memory size of ... bytes exhausted

Error diatas adalah erro yang disebabkan beban memory yang diperlukan ternyata melebihi batas maksimal, dan settingan batas maksimalnya bisa ditemui melalu file php.ini pada bagian memory_limit = '8M' bisa diubah nilai 8M menjadi nilai seberapa besar memory yang dibutuhkan.



mungkin bagi sebagian orang berfikir, kalo sepeti di server lokal mungkin memang mudah mengubah settingan php.ini lantas bagaimana kalo berada di server orang lain (alias sewa hosting?). 


perlu diketahui bahwa ada 3 cara yang bisa dilakukan untuk mengubah settingan di php.ini. :
  1. Dengan menggunakan fungsi di PHP seperti ini_set()
  2. melalu file konfigurasi htaccess
  3. melalui file php.ini secara langsung ataupun httpd.conf
setiap opsi konfigurasi di file php.ini tidak semuanya bisa disettingan dengan ke-3 cara diatas, ada yang hanya bisa disett melalui cara ke-3 atau bahkan bisa kesemua cara. untuk menemukan informasi selengkapnya sebaiknya anda mendownload file ebbok php manualnya secara gratis disini

Monday, October 27, 2008

Seri PHP - Mengurutkan Array

biasanya kita menyimpan data yang kita ambil dari database kedalam variabel bertipe array, ada yang menggunakan key ataupun tidak, nah disini saya akan sedikit share tentang mengurutkan data array tersebut menggunakan fungsi sort() yang ada dalam PHP secara built-in.

untuk data array yang tidak memiliki key misal 
$data = array("Satu","Dua","tiga","empat","lima");
untuk menyortir data array seperti diatas, bisa menggunakan fungsi sort(); 
sehingga bentuk scriptnya menjadi
 
$data = array("Satu","Dua","tiga","empat","lima");
sort($data) ;
var_dump($data) ; // menampilkan isi variable $data

  

pada script diatas, akan mengurutkan variabel data yang bertipe array berdasarkan huruf awal secara Ascending

sedangkan untuk mengurutkan array yang memiliki key maka salah satu caranya bisa menggunakan fungsi natsort();




$data = array(
        "Satu"=>"PHP",
        "Dua"=>"Java",
        "tiga"=>"HTML",
        "empat"=>"Visual Basic",
        "lima"=>"Foxpro");
natsort($data);
var_dump($data) ; // menampilkan isi variable $data
semoga bermanfaat :-) 

Saturday, October 18, 2008

Setting folder htdocs dan database mysql di apache

Setting folder htdocs dan database mysql di apache Secara default ketika anda menginstall aplikasi webserver seperti xampp, appserv, phptriad, apache2triad, dll lokasi folder web (htdocs/ www) berada mengikuti lokasi webserver itu di install. 

Misal anda menginstall webserver di dalam partisi C:/ di windows. Maka folder htdocs dan database Mysql akan berada pula di folder C:/. Memang hal ini tidak salah, namun lokasi C:/ di windows sangat rawan, apalagi bila terjadi install ulang yang biasanya selalu berada di partisi ini. Untuk berjaga-jaga sebaiknya letakan folder htdocs dan database mysql anda di partisi selain C:/. Bisa dilakukan dengan 2 cara:
  1. Anda menginstall webserver di partisi selain C, bisa di D, E dsb. 
  2. Anda bisa menginstall webserver di partisi C namun lokasi htdocs dan database di partisi lain
Dari kedua cara diatas, saya hanya akan membahas point kedua, karena point kesatu sudah jelas   

Baik anda harus mengubah settingan apache dan mysql anda. Anggap bahwa di komputer anda telah terinstall webserver di partisi C. Saya menggunakan webserver produksi apple yaitu “AppServ”. Namun secara umum tidka ada perbedaan antara webserver ini dengan webserver lain. 
Berikut langkah-langkahnya: 
  1. Buka file httpd.conf di
    C:/Appserv/apache2.2/conf/
     
  2. Kemudian cari string “C:/Appserv/ www” lalu ganti dengan string path lokasi folder htdocs baru yang anda siapkan terlebih dahulu, misal “D:/web/www”.berikut ilustrasinya DocumentRoot " C:/Appserv/ www " ubah menjadi DocumentRoot " D:/web/www " Kemudian lakukan hal yang sama pada
    <Directory " C:/Appserv/ www "> ubah menjadi <Directory " D:/web/www ">

  1. Buka file my.ini di C:/AppServ/mysql/ 
  2. Kemudian ubah string datadir="C:\AppServ/MySQL/data/" menjadi datadir="D:\web/database", namun sebelumnya ada telah membuat folder database di D:/web begitu juga dengan folder www di D:/web 
  3. Kemudian restart apache dan mysql anda 
 Semoga bermanfaat.

Thursday, October 16, 2008

Mengecek type data tanggal di PHP

untuk mengecek type data tanggal di PHP bisa menggunakan fungsi checkdate() fungsi ini merupakan fungsi bawaan PHP jadi kita hanya cukup menggunakannya saja.


<?php
var_dump
(checkdate(12312000));
var_dump(checkdate(2292001));
?>

 
nilai yang dihasilkan berupa booelan yakni antara TRUE dan FALSE jika tanggal yang dimasukan valid maka ditandai dengan nilai TRUE atau 1 sebaliknya bila tidak valid maka FALSE atau 0.

[Seri PHP] Menjumlah dan mengurangi type datetime

Dalam php dikenal sebuah fungsi yang bernama strtotime(), fungsi ini berguna untuk mengkonversi english textual time kedalam bentuk timpestamp.

Maksud artikel ini adalah bagaimana menghitung tipe data tanggal/ datetime.
Misal yang saya inginkan adalah menjumlahkan tanggal sekarang dengan 14 hari yang akan datang. Maka bisa diwujudkan dengan script sebagai berikut:

<?
$timestamp = strtotime(“+14 day”);
$sekarang = date(“d-m-y”);
$besok14harilagi=date(“d-m-y”,$timestamp);
Echo “Sekarang adalah : ”.$sekarang;
Echo “
”;
Echo “14 hari lagi adalah : ”. $besok14harilagi;
?>

Untuk mengurangi tanggal bisa menggunakan:
<
$timestamp = strtotime(“-14 day”);
$sekarang = date(“d-m-y”);
$besok14hariyglalu=date(“d-m-y”,$timestamp);
Echo “Sekarang adalah : ”.$sekarang;
Echo “
”;
Echo “14 hari yang lalu adalah : ”. $besok14hariyglalu;
?>

Berikut contoh yang lebih lengkap
<
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Wednesday, October 15, 2008

Melindung Akses secara langsung pada file PHP

dalam dunia programmer, aplikasi web prosentase securitinya mendapat porsi lebih besar dibandingkan dengan aplikasi desktop, hal ini karena aplikasi web erat hubungannya dengan dunia luar meskipun tidak semuany.
Jadi sebenarnya web programmer mempunyai tantangan yang lebih besar dibanding desktop programmer, yakni selain tantangan aplikasi itu sendiri, programmer web harus menciptakan sistem security yang kuat, yang tidak mudah ditembus oleh oknum manapun.
Salah satu cara yang bisa digunakan untuk melindungi web anda, adalah dengan mencegah akses langsung kepada file yang bersifat penting.
Mungkin anda sudah terbiasa menggunakan style include file, karena memang! Ini sudah menjadi kebanyakan programmer menggunakan style ini.
Misal:


<?php
//file index.php
Echo “ini isi file index.php”;
Include “admin.php”;
?>
 

<?
//isi file admin.php
Echo “ini adalah halaman admin”;
?>

Ketika file index.php dibuka, maka akan tampil isi dari file admin.php juga. Nah sekarang, bagaimana kalau anda langsung membuka file admin.php melalui address bar, misal saja alamatnya adalah http://localhost/contoh/admin.php. maka akan tampil isi file admin.php saja.

Dari kasus, diatas, seharusnya ketika diketikan alamat http://localhost/contoh/admin.php isi file admin.php tidak bisa dibuka, karena diperlukan authentication dulu.
Caranya:
 
<?php
//file index.php
Define(“PQCMS”,true);
Echo “ini isi file index.php”;
Include “admin.php”;
?>

<?
//isi file admin.php
Defined(“PQCMS”) or die(“ANDA TIDAK BERHAK MENGAKSES SECARA LANGSUNG HALAMAN INI”);
Echo “ini adalah halaman admin”;
?>

Nah sekarang anda coba akses halaman http://localhost/contoh/admin.php  dan bandingkan dengan mengakses halaman http://localhost/contoh/index.php



Selamat mencoba

Thursday, September 4, 2008

Installing Apache, PHP, Mysql and PHPMyAdmin on Centos

this is only my experience! firstly I use linux centos, its great. before I ever using Ubuntu linux, that is only try to learm buat its great too. :)

I think, if we are programmer website, the suitable operating systm to use is linux, because the most of webserver is using linux, the rease is security, because the security linux is more strength than windows security.

Okey we start this tutorial now
open the terminal and type

yum -y install httpd php mysql mysql-server php-mysql

wait until finish, then run this code

#/sbin/chkconfig httpd on
#/sbin/chkconfig --add mysqld
#/sbin/chkconfig mysqld on
#/sbin/service httpd start
#/sbin/service mysqld start

the next to installing phpMyAdmin, you must download the phpMyadmin file in www.phpmyadmin.net, in this tutorial, I use phpMyAdmin-2.11.8.1 version

save the download file of phpmyadmin in desktop directory

# cd Desktop
# mv phpMyAdmin-2.11.8.1.tar.gz /var/www/html
# tar -zfx phpMyAdmin-2.11.8.1.tar.gz
# cd phpMyAdmin-2.11.8.1
# cp config.sample.inc.php config.inc.php

then edit config.inc.php file and change this script.

$cfg['blowfish_secret'] = ‘cc09333′;

then save :)



Wednesday, August 27, 2008

Mengetahui Perbedaan MYSQL_ASSOC, MYSQL_BOTH dan MYSQL_NUM

dalam fungsi PHP-Mysql terdapat salah satu function yang bernama mysql_fetch_array(). fungsi ini digunakan untuk mendapatkan data dari sebuah database ke dalam bentuk array.

parameter yang dimiliki oleh funtion ini ada dua mysql_fetch_array(param1,param2)
param1 = resource nya
param2= tipe array yang dikembalikannya (optional)

namun kita seringnya cuman pake param1 saja, ya gak!!!?? nah sekarang anda sudah tahu ternyata funtion ini punya 2 parameter, mungkin prtanyaan anda sekarang, apa fungsi parameter yang kedua itu???

secara default param ke 2 akan bernilai MYSQL_BOTH, artinya tipe array yang dikembalikan bertipe nummeric dan assoc.

contoh tipe array numeric key=$data[0], $data[1],$data[2],$data[3],$data[4]

contoh tipe array assoc key=$data[id],$data[nama],$data[alamat],$data[url]

misal:

$sql="SELECT * FROM tamu";
$res=mysql_query($sql);
$data=mysql_fetch_array($res);
echo $data[0];
echo $data[id];


MYSQL_ASSOC
hanya mengembalikan tipe array ke dalam bentuk string nama fieldnya
Pemakian yag salah
echo $data[1];
echo $data[2];

pemakaian yang benar
echo $data[id];
echo $data[nama];

MYSQL_NUM
kebalikan dari MYSQL_ASSOC.. okeyzzz

semoga bermanfaat