Membuat Laporan (Print)

4 11 2008
  • Buat tombolnya printnya di halamn preview report

<input type=”button” name=”btn_cetak” onClick=”cetak(<?php echo $param;?>)” value=”Cetak”>

  • Buat script javascript diantara tag<head></head>

<script language=”javascript”>
function cetak(param){
window.open(“cetak.php?param=”+param,”cetak”,”width=500,heigth=500,scrollbars=1″)
}
</script>

Di cetak php
<body onload=”window.print()”>
<?php
$param=$_GET[’param’];
$sql=”select ….. from … where field=’$param’”;
//buat tampa button
?>
</body>

dengan sedikit perubahan, source selengkapnya :

<html>
<head>
<title>Tes</title>

<style type=”text/css”>
@media print {
input.noPrint { display: none; }
}
</style>

</head>
<body>

<?php
class orang {
var $nama = ‘Nyoba Print’;
var $tinggal = ‘Di HTML’;
}
$new_plesh=new orang();
echo “Tugas saya adalah “.$new_plesh->nama;
echo “<br>”;
echo “Tinggal di :”.$new_plesh->tinggal;

?>
<form><input class=”noPrint” type=”button” value=”Print” onclick=”window.print()”></form>

</body>
</html>





Pengolahan Waktu di PHP

27 08 2008

Di artikel ini kita akan mencoba mengetahui salah satu fungsi di php yaitu date dan mktime, yg sangat berguna untuk pengolahan waktu seperti, validasi, perbandingan,pengurangan dan penambahan. Pengolahan waktu sangatlah penting jika aplikasi kamu berhubungan dgn validasi dan perbandingan waktu, misal: masa berlaku keanggotaan, memberi peringatan jika masa berlaku akan habis sebentar lagi, aplikasi kalender, dan banyak lagi.

jika kita membaca manual dari php, dapat dijelaskan sbb:

date

syntak: int date (string format, int [timestamp])
fungsi: menghasilkan waktu sesuai dengan format waktu yg diberikan
contoh(diasumsikan saat ini tgl 24 februari 2002):
$sekarang = date(“d-m-Y”); /*akan menghasilkan 24-02-2002*/
$sekarang = date(“j F Y”); /*akan menghasilkan 24 February 2002*/

d akan memformat tanggal dgn dua dua digit mulai 01 sampai 12
m akan memformat bulan dgn dua digit mulai 01 sampai 30
Y akan memformat tahun dgn empat digit misal. 1999,2002,dsb
j akan memformat tanggal dgn menghilangkan angka 0 didepan mulai 1 sampai 31
n akan memformat bulan dgn menghilangkan angka 0 didepan mulai 1 sampai 12
F akan memfromat bulan dgn tekstual lengkap misal. March, December,dsb

Masih banyak lagi parameter waktu yg bisa digunakan, sebaiknya kamu membaca manual dari php untuk mengetahui secara lengkap parameter lainnya

mktime

syntak: int mktime (int hour, int minute, int second, int month, int day, int year [, int is_dst])
fungsi: untuk mendapatkan format waktu UNIX dlm detik (long integer) terhitung mulai dari 1 januari 1970
contoh:
$sekarang = mktime(0,0,0,date(“m”),date(“d”),date(“Y”)); /* akan menghasilkan 1014483600*/
$waktu = mktime(0,0,0,11,22,98); /*akan menghasilkan 911667600*/
$waktu = date(“j F Y”, mktime(0,0,0,7,9,2002)); /*akan menghasilkan 9 July 2002*/

Kesalahan yg bisa dibenarkan

salah satu kelebihan fungsi mktime adalah mampu mengkoreksi kesalahan format waktu yang kita tulis. misal:


$waktu = date(“j F Y”, mktime(0,0,0,7,34,2001));
$waktu = date(“j F Y”, mktime(0,0,0,13,2,2001));

Penulisan variabel pertama diatas adalah sah saja, karena nilai 34 (tidak ada tanggal 34) otomatis akan dirubah menjadi tgl 31 ditambah 3 sehingga menghasilkan 3 August 2001. begitu juga pada variabel kedua akan menghasilkan 2 Janury 2002 (tidak ada bulan 13 maka otomatis dirubah menjadi 12 ditambah 1 bulan kedepan)

Sekarang kita akan mencoba memanfaatkan kedua fungsi tersebut untuk membantu kita dlm pengolahan waktu. pembahasan artikel ini hanya mencakup pemanfaatan format tanggal, bulan dan tahun saja dan menghiraukan format jam, menit dan detik sehingga kita cukup mengisi jam, menit dan detik dengan 0. Anda bisa mencoba sendiri bereksperimen dgn format waktu lainnya.

Contoh 01. penambahan dan pengurangan waktu

jika kita ingin mengetahui waktu pd saat 3 hari yg akan datang (andaikan hari ini tgl 10 Oktober 2001), dengan mudah kita bisa menuliskannya sbb:


$tambahwaktu = date(“d F Y”, mktime(0,0,0,date(“m”),date(“d”)+3,date(“Y”))); /*menghasilkan 27 February 2002*/
echo (“tiga hari yg akan datang jatuh pada tgl $tambahwaktu”);

perhatikan penambahan 3 di bagian date(“d”) yg dimaksudkan untuk menambahkan interval 3 hari ke depan. jika kita ingin mengetahui interval bulan, maka cukup menambahkannya pada bagian date(“m”) dan yg lainnya dgn prinsip yg sama. contoh lain:


$kurangtanggal = date(“d F Y”, mktime(0,0,0,date(“m”),date(“d”)-14,date(“Y”))); /*menghasilkan 10 February 2002*/
echo (“dua minggu yg lalu jatuh pada tgl $kurangtanggal”);

$kurangbulan = date(“d F Y”, mktime(0,0,0,date(“m”)-7,date(“d”),date(“Y”))); /*menghasilkan 24 July 2001*/
echo (“tujuh bulan yg lalu jatuh pada tgl $kurangbulan”);

Contoh02. validasi waktu dari masukan form.

Sekarang kita akan mencoba langsung pemanfaatan fungsi date dan mktime dalam sebuah form html dengan membandingkan dua buah waktu sesuai kondisi yang kita inginkan. Diasumsikan bahwa kamu sudah mengetahui penulisan form pada html. Dlm contoh ini kita akan membuat bagian dari sebuah proses reservasi dimana user memilih tanggal checkin dan checkout dengan kondisi sbb:
1. minimal selisih tanggal checkin adalah 3 hari setelah waktu saat ini
2. jarak antara checkin dan checkout minimal 2 hari, dgn kata lain; reservasi minimal 2 hari
3. form secara default akan menampilkan waktu 3 hari setelah waktu saat ini pd checkin dan selisih dua hari dari checkin, pada form checkout

yg akan kita lakukan adalah membuat form waktu checkin dan checkout yg nantinya akan dipilih user. kemudian field-field tersebut secara default (menggunakan atribut “selected” pada tag ) akan menampilkan penambahan 3 hari setelah waktu saat ini di field checkin, dan field checkout yang berselisih 2 hari dgn waktu checkin.

pertama, kita akan membuat sebuah file, kita beri nama tanggal.php yg berisikan form yg akan diproses oleh sebuah file yg bernama validasi.php (comment diantara /* dan */), sbb:

PLAIN TEXT

PHP:

  1. <?php
  2. /* tanggal.php */
  3. /* buat array bulan */
  4. $bulan = array(1=>‘Jan’,2=>‘Feb’,3=>‘Mar’,4=>‘Apr’,5=>‘May’,6=>‘Jun’,7=>‘Jul’,8=>‘Aug’,9=>‘Sep’,10=>‘Oct’,11=>‘Nov’,12=>‘Dec’);
  5. /* definisikan variabel-variabel tgl, bulan dan tahun utk dipakai sbg pembanding pd tag option */
  6. $checkin = mktime(0,0,0,date(“m”) ,date(“d”)+3,date(“Y”));
  7. $indate = date(“j”, $checkin);
  8. $inmonth = date(“n”, $checkin);
  9. $inyear = date(“Y”, $checkin);
  10. $checkout = mktime(0,0,0,date(“m”) ,date(“d”)+5,date(“Y”));
  11. $outdate = date(“j”, $checkout);
  12. $outmonth = date(“n”, $checkout);
  13. $outyear = date(“Y”, $checkout);
  14. ?>
  15. <html>
  16. <body>
  17. <form method=“post” action=“validasi.php”>
  18. <p>check-in:
  19. <select name=“intanggal”>
  20. <?php
  21. /* buat loop utk tgl sampe batasnya. yg lain juga sama */
  22. for ($i=1; $i <= 31; $i++) {
  23. /* jika $indate sama dgn $i, maka buat terselect secara default pd tag select. yg lain juga sama */
  24. if ($i == $indate){ $selectdate =“selected”;} else {$selectdate=“”;}
  25. echo (“<option value=\”$i\” $selectdate>$i</option>”.\n);
  26. }
  27. ?>
  28. </select>
  29. <select name=“inbulan”>
  30. <?php
  31. for ($i=1; $i <= 12; $i++) {
  32. if ($i == $inmonth){ $selectmonth =“selected”;} else {$selectmonth=“”;}
  33. echo (“<option value=\”$i\” $selectmonth>$bulan[$i]</option>”.\n);
  34. }
  35. ?>
  36. </select>
  37. <select name=“intahun”>
  38. <?php
  39. for ($i=2002; $i <= 2003; $i++) {
  40. if ($i == $inyear){ $selectyear =“selected”;} else {$selectyear=“”;}
  41. echo (“<option value=\”$i\” $selectyear>$i</option>”.\n);
  42. }
  43. ?>
  44. </select>
  45. </p>
  46. <p>check-out:
  47. <select name=“outtanggal”>
  48. <?php
  49. for ($i=1; $i <= 31; $i++) {
  50. if ($i == $outdate){ $selectdate =“selected”;} else {$selectdate=“”;}
  51. echo (“<option value=\”$i\” $selectdate>$i</option>”.\n);
  52. }
  53. ?>
  54. </select>
  55. <select name=“outbulan”>
  56. <?php
  57. for ($i=1; $i <= 12; $i++) {
  58. if ($i == $outmonth){ $selectmonth =“selected”;} else {$selectmonth=“”;}
  59. echo (“<option value=\”$i\” $selectmonth>$bulan[$i]</option>”.\n);
  60. }
  61. ?>
  62. </select>
  63. <select name=“outtahun”>
  64. <?php
  65. for ($i=2002; $i <= 2003; $i++) {
  66. if ($i == $outyear){ $selectyear =“selected”;} else {$selectyear=“”;}
  67. echo (“<option value=\”$i\” $selectyear>$i</option>”.\n);
  68. }
  69. ?>
  70. </select>
  71. </p>
  72. <p>
  73. <input type=“submit” value=“cek waktu”>
  74. </p>
  75. </form>
  76. </body>
  77. </html>

Mari kita perhatikan satu-persatu,
$bulan berisi array utk mempopulasi option bulan di form. Jika kamu belum memahami array, silahkan mambaca manual php. Untuk saat ini kita tidak akan membahasnya.

$checkin akan menghasilkan format waktu 3 hari setelah saat ini, yg kemudian diambil tanggalnya saja pada variabel $indate. $indate sendiri akan memformat waktu berdasarkan format dua digit tanpa 0 didepan, sesuai dgn value yg kita punya di option tanggal. begitu juga dengan $inmonth dan $inyear yg mengambil format bulan dua digit dan format tahun empat digit.

bisa saja kita mendapatkan hasil dgn nilai yg sama dgn hanya menggunakan fungsi date. seperti pada cara kedua sbb:


$indate = date(“d”)+3;

namun apabila kita menambahkannya dgn 35, maka format tanggal diatas menjadi tidak sah lagi, lain halnya dgn mktime yg otomatis memperbaiki kesalahan. dgn pertimbangan fleksibilitas serta mengurangi resiko kesalahan maka kita akan menggunakan cara pertama walaupun lebih panjang dari cara kedua.

sekarang, perhatikan code-snippet sbb:

PLAIN TEXT

PHP:

  1. <select name=“intanggal”>
  2. <?php
  3. /* buat loop utk tgl sampe batasnya. yg lain juga sama */
  4. for ($i=1; $i <= 31; $i++) {
  5. /* jika $indate sama dgn $i, maka buat terselect secara default pd tag select. yg lain juga sama */
  6. if ($i == $indate){ $selectdate =“selected”;} else {$selectdate=“”;}
  7. echo (“<option value=\”$i\” $selectdate>$i</option>”.\n);
  8. }
  9. ?>
  10. </select>

pada option tanggal kita akan membuat loop sampai batas 31


for ($i=1; $i <= 31; $i++) {

artinya selama $i lebih kecil atau sama dengan 31, maka $i akan ditambahkan dgn 1 dgn penulisan $i++

sebelum output kita keluarkan, kita juga men-cek, jika nilai $indate sama dgn $i maka $selectdate berisi string “selected” jika tidak nilai $selectdate kita buat kosong “”


if ($i == $indate){ $selectdate =”selected”;} else {$selectdate=”";}

kemudian terakhir, kita mempopulasi tag yg otomatis terselect. prinsip ini sama dengan loop utk bulan dan tahun. Perhatikan juga pada option inbulan dimana kita mengoutput array $bulan yg telah kita buat sebelumnya.

Untuk option inbulan, sebenarnya kita juga bisa mempopulasi array bulan yg telah kita buat dengan cara sbb:


while(list($key,$val)=each($bulan)) {
if ($key == $inmonth){ $selectmonth =”selected”;} else {$selectmonth=”";}
echo (“$val”.”\n”);
}

penulisan cara diatas ataupun cara sebelumnya sama saja, terserah kamu memilih yang mana.

Kini saatnya kita membuat file validasi.php,

PLAIN TEXT

PHP:

  1. <html>
  2. <body>
  3. <?php
  4. /*validasi.php*/
  5. $in = mktime(0,0,0,$inbulan,$intanggal,$intahun);
  6. $out = mktime(0,0,0,$outbulan,$outtanggal,$outtahun);
  7. $min = mktime(0,0,0,date(“m”),date(“d”)+3,date(“Y”));
  8. $interval = mktime(0,0,0,$inbulan,$intanggal+2,$intahun);
  9. $nowshow = date(“j F Y”);
  10. $minshow = date(“j F Y”, $min);
  11. if ($in <$min) {
  12. echo (“hari ini tgl $nowshow, dan waktu checkin minimum adalah tgl $minshow, silahkan kembali”);
  13. }
  14. elseif ($in>= $out) {
  15. echo (“waktu checkin tidak boleh sama dengan atau lebih dari tgl checkout, silahkan kembali”);
  16. }
  17. elseif ($interval> $out) {
  18. echo (“jarak antara checkin dan checkout minimum 2 hari, silahkan kembali”);
  19. }
  20. else {
  21. echo (“terimakasih, kami akan memprosesnya!”);
  22. }
  23. ?>
  24. </body>
  25. </html>

Mari kita perhatikan satu persatu,
$in dan $out akan mendapatkan format waktu berdasarkan masukan user pd field checkin dan checkout.
$min adalah pembanding untuk mendapatkan nilai 3 hari setelah saat ini.
$interval akan berfungsi sbg pembanding selisih minimum 2 hari antara checkin dan checkout.
$nowshow memformat waktu sekarang dan $minshow memformat minimum waktu checkin.

setelah kita mendapatkan nilai-nilai yg diperlukan maka dgn mudah kita dapat membandingkannya sesuai dgn kondisi yg kita inginkan seperti contoh-contoh diatas. cobalah untuk men-tes script yg telah kamu buat tersebut, dan lakukan experimen lainnya misalnya membandingkan jam, menit atau detik.

contoh diatas masih sangat sederhana dan belum sempurna, seperti misal: belum ada validasi untuk tanggal di tahun kabisat. Untuk itu, kamu bisa menambahkan validasi berdasarkan tahun kabisat dengan melihat input form tahun yg jika habis dibagi 4 berarti tahun kabisat dan menggunakan parameter L di fungsi date() yang mengeluarkan nilai boolean. Atau validasi utk tgl di bln februari, dimana tidak ada tgl 30 di bulan februari.





Membuat Web Counter Sederhana Dengan PHP

27 08 2008

Anda lihat code-nya di bawah ini.

<?
$counthandle=fopen($_SERVER['DOCUMENT_ROOT'] . “/counterdata/counter.txt”,”r”);
$getcurrent=fread($counthandle,filesize($_SERVER['DOCUMENT_ROOT'] . “/counterdata/counter.txt”)); $getcurrent=$getcurrent+1;
fclose($counthandle);
$counthandle1=fopen($_SERVER['DOCUMENT_ROOT'] . “/counterdata/counter.txt”,”w”);
fputs($counthandle1,$getcurrent);
fclose($counthandle1);
$counthandle2=fopen($_SERVER['DOCUMENT_ROOT'] . “/counterdata/counter.txt”,”r”);
$getrecent=fread($counthandle2,filesize($_SERVER['DOCUMENT_ROOT'] . “/counterdata/counter.txt”));
echo “visitor is : ” . $getrecent;
fclose($counthandle2);
?>

Kita lihat di atas bahwa ada beberapa fungsi operasi file pada PHP yang kita gunakan untuk pembuatan web counter dengan menggunakan text file sebagai data counter ini. Ada fungsi fopen (digunakan untuk open file dan mendapatkan file handle), fread (digunakan untuk membaca file), fclose (digunakan untuk menutup file) dan fputs (digunakan untuk menulis ke dalam file).





Buat laporan dengan Php..?

27 08 2008

Mentok waktu di suruh buat laporan! maunya kaya crystal report, ternyata ga ada! jd pake HTML aja deh!!
masih aja ada masalah, walaupun boleh tanpa tombol print yaitu pake File -> Print.. tapi gw kurang puas dengan itu! tanya-tanya temen an konsultasi sama mbah google ternyata dapet juga dengan ga habis 1 hari!

ni codingnya :
Buat tombolnya printnya di halaman preview report

<input type=”button” name=”btn_cetak” onClick=”cetak(<?php echo $param;?>)” value=”Cetak”>

Buat script javascript diantara tag<head></head>

<script language=”javascript”>
function cetak(param){
window.open(“cetak.php?param=”+param,”cetak”,”width=500,heigth=500,scrollbars=1″)
}
</script>

Di cetak php
<body onload=”window.print()”>
<?php
$param=$_GET[’param’];
$sql=”select ….. from … where field=’$param’”;
//buat tampa button
?>
</body>

Sehingga jika cetak.php diload maka akan langsung muncul dialog priint
eh, itu dapet dari orang! (bukan gw yg buat) ini cuma media penyampaian aja.. (semoga membantu) maklum blom menguasai (masih ngeja nih). Tapi itu gw juga masih blom puas!! karena bisa ngeliat hasilnya kalo udah di print aja! ok akhirnya cari-cari lagi dan mbah google sangat amat baik ngasih gw script seprti ini :

<html>
<head>
<title>Tes</title>

<style type=”text/css”>
@media print {
input.noPrint { display: none; }
}
</style>

</head>
<body>

<?php
class orang {
var $nama = ‘Nyoba Print’;
var $tinggal = ‘Di HTML’;
}
$new_plesh=new orang();
echo “Tugas saya adalah “.$new_plesh->nama;
echo “<br>”;
echo “Tinggal di :”.$new_plesh->tinggal;

?>
<form><input class=”noPrint” type=”button” value=”Print” onclick=”window.print()”></form>

</body>
</html>

dengan itu gw baru berasa puas!

pertamanya sih tombol printnya pun ikut ke print, tapi pas pake css itu selesai juga 1 masalah gw! alhamdulillah

thx ya Allah…





PHP MAILER

27 08 2008

Contoh penggunaan Fungsi mail():
<?php
$To = “support@mydomain.com”;         // email yang dituju
$Subject = ‘Contoh subyek email’;     // subyek email
$From = “From: ” . $_POST["email"];   // header untuk mendefinisikan darimana pengirim email berasal
$Body = ‘Isi dari email’;             // isi email

mail($To, $Subject, $Body, $From);    // mengirim email
?>

Masing-masing parameter dari fungsi mail() dipisahkan dengan variabel untuk memudahkan pemahaman.
Berikut jika menggunakan phpmailer berikut attachement.

require(“class.phpmailer.php”);
$mail = new PHPMailer();
$mail->IsSMTP();                                   // send via SMTP
$mail->Host     = “smtp1.site.com;smtp2.site.com”; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = “jswan”;  // SMTP username
$mail->Password = “secret”; // SMTP password
$mail->From     = “from@email.com”;
$mail->FromName = “Mailer”;
$mail->AddAddress(“josh@site.com”,”Josh Adams”);
$mail->AddAddress(“ellen@site.com”);               // optional name
$mail->AddReplyTo(“info@site.com”,”Information”);
$mail->WordWrap = 50;                              // set word wrap
$mail->AddAttachment(“/var/tmp/file.tar.gz”);      // attachment
$mail->AddAttachment(“/tmp/image.jpg”, “new.jpg”);
$mail->IsHTML(true);                               // send as HTML
$mail->Subject  =  “Here is the subject”;
$mail->Body     =  “This is the <b>HTML body</b>”;
$mail->AltBody  =  “This is the text-only body”;
if(!$mail->Send())
echo “Message has been sent”;
Terlihat bahwa fungsi mail dan phpmailer class memiliki kemiripan. Walaupun ada beberapa tambahan baris/kode yang harus dipakai sehubungan dengan penggunaan SMTP authentication. Penggunaan SMTPauthentication sangat dianjurkan agar skrip tidak dapat diinjeksi untuk mengirim spam, seperti halnya jika menggunakan fungsi mail() built-in PHP.





Sisip Gambar Yahoo ID

7 02 2007

<– Awal Kode YM Anda –>

<a title=”yang jaga situs ini” xhref=”http://edit.yahoo.com/config/send_webmesg?.target=domain_anda&.src=pg” mce_href=”http://edit.yahoo.com/config/send_webmesg?.target=domain_anda&.src=pg”>
<img border=0 xsrc=”http://opi.yahoo.com/online?u=domain_anda&m=g&t=2″ mce_src=”http://opi.yahoo.com/online?u=domain_anda&m=g&t=2″></a>

<– Akhir Kode YM Anda –>