Archive

Archive for May, 2010

Function Transfer File Via FTP Account

May 7, 2010 2 comments

Pada kesempatan kali ini saya akan memberikan contoh function yang bisa kita gunakan untuk mengirimkan file ke server hostingan via ftp account menggunakan php script. Script ini saya dapatkan dari hasil browsing ketika saya mengharuskan mengirimkan txt file yang telah digenerate di komputer lokal kemudian dikirim ke server hosting. Sebetulnya bisa kita menggunakan FTP Client tapi tentunya lebih ribet karena harus membuka lagi program FTP Client. Langsung saja dicoba function berikut ini.

/* Function ftp_uploaddirectory */
function ftp_uploaddirectory($conn_id, $local_dir, $remote_dir){
@ftp_mkdir($conn_id, $remote_dir);
$handle = opendir($local_dir);
while (($file = readdir($handle)) !== false){
if (($file != ‘.’) && ($file != ‘..’)){
if (is_dir($local_dir.$file)){
ftp_uploaddirectory($conn_id, $local_dir.$file.’/', $remote_dir.$file.’/');
} else
$f[] = $file;
}
}
closedir($handle);
if (count($f)){
sort($f);
@ftp_chdir($conn_id, $remote_dir);
foreach ($f as $files){
$from = @fopen(“$local_dir$files”, ‘r’);
@ftp_fput($conn_id, $files, $from, FTP_BINARY);}
}
}

/* File Index.php Kita */
$server = “nama server hosting / ftp account”;
$username=”username ftp / nama subdomain”;
$pass=”password ftp /  subdomain”;
$conn_id = @ftp_connect($server);
@ftp_login ($conn_id, $username, $pass);
ftp_uploaddirectory($conn_id, ‘directory sumber lokal’, ‘direktori tujuan hosting’);
@ftp_quit($conn_id);

Note : Perhatikan direktori tujuan di server hosting, pastikan permission chmod ke 775 untuk server linux.

Semoga Bermanfaat

Function Time Out

May 5, 2010 Leave a comment

Function Time Out ini bertujuan untuk meng-logout secara otomatis user yang sedang login namun status dia idle untuk beberapa waktu yang lama tanpa ada aktivitas sama sekali. Tujuannya untuk melindungi data yang ada didalamnya jika ternyata user meninggalkan aplikasinya untuk waktu yang cukup lama tapi lupa meng-logout account dia dari program tersebut. Ini contoh sederhana bisa anda modif lagi sesuai keinginan.

/* timeout.php */
<?php
session_start();
function login_validate() {
$timeout = 1;  /* deklarasi waktu yang kita inginkan (detik) */
$_SESSION["expires_by"] = time() + $timeout;
}

function login_check() {
$exp_time = $_SESSION["expires_by"];
if (time() < $exp_time) {
login_validate();
return true;
} else {
unset($_SESSION["expires_by"]);
return false;
}
}
?>

/* cek.php */
<?php
include ‘timeout.php’;
login_validate();
header(‘Location:main.php’);
?>

/* main.php*/
<?php
include ‘timeout.php’;
if (!login_check()){
echo ‘Sesi sudah habis !! <a href=index.php>Kembali</a’;
exit(0);
}else{
echo ‘Sesi Ok Dalam Hitungan 1 Detik Session akan Hilang.
<br> Silahkan Refresh Halaman ini’;
}
?>

/* index.php */
<title>Session Login</title>
<form name=’cekSesi’ method=’GET’ action=’cek.php’>
<input type=’submit’ value=’Login’>
</form>

Alur Program :
Pertama file index.php berisikan sebuah tombol submit sederhana yang akan dikirimkan ke file cek.php. File cek.php berisikan pemberian nilai $_SESSION["expires_by"] yang kemudian didirect ke file main.php. File main.php melakukan pengecekan sesi, kita memberi nilai time out adalah 1 (satu) detik, sehingga ketika kita merefresh halaman main.php terbaca sessionnya sudah expired dan akan muncul pesan ‘Sesi sudah habis’ / bisa juga kita direct ke halaman index / form login.

DEMO PROGRAM | SOURCE CODE

Semoga Bermanfaat

Categories: PHP, Tips, Tutorial Tags: , ,

Function No Urut Transaksi

May 5, 2010 Leave a comment

Dalam kesempatan kali ini saya akan memberikan contoh Function untuk membuat nomor urut transaksi. Seringkali kita melihat sebuah nomor transaksi  pada sebuah nota / faktur yang terdiri dari informasi tahun, bulan, tanggal dan nomor urut transaksi itu terjadi.

function nopenjualan(){
$format = date(“ymd”);
$sql=mysql_query(“SELECT kodetransaksi FROM salesproduk_h WHERE substr(kodetransaksi,1,2)=’SL’ AND substr(kodetransaksi,3,6) like ‘%”.$format.”%’ ORDER BY kodetransaksi DESC LIMIT 1 “) or die (mysql_error());
$d=mysql_num_rows($sql);

if($d>0){
$r=mysql_fetch_array($sql);
$d=$r['kodetransaksi'];
$str=substr($d,8,6);
$No_Urut = (int)$str;
}else{
$No_Urut = 0;
}

$No_Urut = $No_Urut + 1;
$Nol=”";
$nilai=5-strlen($No_Urut);
for ($i=1;$i<=$nilai;$i++){
$Nol= $Nol.”0″;
}

$Kd_Trans =”SL”.$format.$Nol.$No_Urut;
return $Kd_Trans;
}

Penggunaannya :
$kodeTransaksi=nopenjualan();
echo $kodeTransaksi;

Tercetak :
SL100505000762
SL : Sales
10 : 2010
05 : Mei
05 : Tanggal
000762 : Urutan Transaksi

Semoga Bermanfaat

Categories: Mysql, PHP, Tips, Tutorial Tags: , , ,

Read XML File

May 5, 2010 Leave a comment

Suatu ketika saya diharuskan membaca data dari XML File yang digenerate hanya ketika saya melakukan request ke server dimana file XML itu dibuat. Untuk lebih jelasnya saya akan jelaskan dalam tutorial.

/ * Ambil File XML dan Simpan Dalam Suatu File */
$url = “http://192.168.0.102/”;
$str = file_get_contents($url);
$fh = fopen(‘content.xml’, ‘w’) or die(“can’t open file”);
fwrite($fh, $str);
$data = simplexml_load_file(“content.xml”);
$jum= count($data)/3;

/* Display Isi XML */
for ($i=0;$i<$jum;$i++){
echo $data->KodeMember[$i];
}

Semoga Bermanfaat

Extract ZIP File Insert MYSQL From DBF File

May 5, 2010 Leave a comment

Pada pembahasan sebelumnya mengenai Eksport DBF ke MYSQL dengan Menggunakan PHP sudah dijelaskan secara teknis untuk mengimport data dari DBF file. Pada tutorial kali ini pun tidak jauh berbeda seperti sebelumnya, perbedaannya adalah kita akan mulai dari mengekstrak file zip, kemudian kita mengambil file DBF tersebut hingga menghapus file DBF yang telah kita import ke MYSQL database kita.

/* Langkah Awal Kita Cek Apakah ada File ZIP di Folder Awal */
$dir = “C:/xampp/htdocs/zip/”;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (substr($file,-3)==’ZIP’){
$nmFile=$file;  (Jika Ekstension File adalah ZIP)
}
}
closedir($dh);
}
}

/* Langkah Kedua Ekstrak ZIP File ke Folder Tujuan */
$zip = new ZipArchive;
if ($zip->open($nmFile) === TRUE) {
$zip->extractTo(‘C:/xampp/htdocs/zip/ekstrak/’);
$zip->close();

/* Cek Apakah File DBF ada, Jika Ada Insert Ke Array Dahulu */
if (file_exists(“MSBANK.DBF”)) {
$sql=”;
$sql=array();
$insert=dbase_open(“MSBANK.DBF”,0);  /*Buka DBF File */
if ($insert){
echo “The file MSBANK.DBF exists<br>”;
$jum_record=dbase_numrecords($insert);
$nilai=0;
for ($ind=1;$ind<=$jum_record;$ind++){
$data=dbase_get_record($insert,$ind);
$sql[] = ‘(“‘.$data[0].’”,”‘.$data[1].’”,”‘.$data[2].’”,”‘.$data[3].’”,
“‘.$data[4].’”,”‘.$data[5].’”,”‘.$data[6].’”,”‘.$data[7].’”,”‘.$data[8].’”,”‘.$data[9].’”)’;
}
dbase_close($insert);
}
echo ‘Master Bank Rows ‘.$jum_record.’<br>’;
mysql_query(‘TRUNCATE TABLE `tempbank`’) or die (mysql_error());
$h=’INSERT INTO tempbank VALUES ‘.implode(‘,’, $sql) ;
mysql_query($h) or die (mysql_error());

/* Jika Data Sama Cek Perintah Update dengan Data Terbaru */
$sql=”;
$sql=array();
$ql=mysql_query(‘SELECT * FROM tempbank ORDER BY kodebank ASC’) or die (mysql_error());
while($rh=mysql_fetch_row($ql)){
$l=mysql_query(‘SELECT kodebank FROM bank WHERE kodebank=”‘.$rh[0].’”‘) or die (mysql_error());
$jj=mysql_num_rows($l);
if ($jj>0){
$update=’UPDATE bank SET
kodebank=”‘.$rh[0].’”,
namabank=”‘.$rh[1].’”,
digit=”‘.$rh[2].’”,
valid=”‘.$rh[3].’”,
createdate=”‘.$rh[4].’”,
createtime=”‘.$rh[5].’”,
createuser=”‘.$rh[6].’”,
lastupdate=”‘.$rh[7].’”,
lastupdatetime=”‘.$rh[8].’”,
lastupdateby=”‘.$rh[9].’”
WHERE kodebank =”‘.$rh[0].’”‘;
mysql_query($update) or die (mysql_error());
}else{
“‘.$rh[4].’”,”‘.$rh[5].’”,”‘.$rh[6].’”,”‘.$rh[7].’”,”‘.$rh[8].’”,”‘.$rh[9].’”)’;$sql[] = ‘(“‘.$rh[0].’”,”‘.$rh[1].’”,”‘.$rh[2].’”,”‘.$rh[3].’”,
}}

/* Jika Data Berbeda Insert Baru */
$h=’INSERT INTO bank VALUES ‘.implode(‘,’, $sql) ;
$jumArray = count($sql);
if ($jumArray>0){
mysql_query($h) or die (mysql_error());
}
} else {
echo “The file MSBANK.DBF does not exist”;
}
}else{
echo ‘Tidak Ada File ZIP yang diekstrak !’;
}

/* Hapus File DBF dan ZIP */
if (file_exists($nmFile)) {
unlink($nmFile);
}
if (file_exists(‘MSBANK.DBF’)) {
unlink(‘MSBANK.DBF’);
}

Script diatas sudah diujicoba di dapur sendiri :) alias berdasarkan kasus yang saya pernah kerjakan ketika harus mengimport data dari DBF File. Jika ada cara yang lebih baik silahkan sharing disini. Sampai saat ini saya masih mencari tau bagaimana ekstrak ZIP File yang terenkripsi password dimana passwordnya kita ketahui. Mungkin ada yang tahu boleh sharing disini juga. Terima Kasih.

Semoga Bermanfaat

Generate Password

May 5, 2010 Leave a comment

Sudah lama rasanya saya tidak menulis artikel lagi di blog ini, maklum kesibukan bekerja :) Baik pada kesempatan kali ini saya akan memberikan sebuah contoh function untuk mengenerate password baru yang berisikan kombinasi huruf dan angka secara acak. Berikut contoh function yang akan kita gunakan.

function generatePassword($length=6) {
$vowels = ’1987658259124721215813′;
$consonants = ‘ABCDEFGHIJKLMOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz’;

$password = ”;
$alt = time() % 2;

for ($i = 0; $i < $length; $i++) {
if ($alt == 1) {
$password .= $consonants[(rand() % strlen($consonants))];
$alt = 0;
}else {
$password .= $vowels[(rand() % strlen($vowels))];
$alt = 1;
}
}
return $password;
}

Penggunaannya :
$newPassword=generatePassword(6);
echo $newPassword;

Semoga Bermafaat

Categories: PHP, Tips, Tutorial Tags: , ,
Follow

Get every new post delivered to your Inbox.