Arsip Penulis: Hendra,MT

Tentang Hendra,MT

Hendra,S.Kom.,MT. lahir di Tangerang tahun 1975. Menamatkan gelar sarjana komputer di Universitas Bina Nusantara tahun 1998 dan Magister Teknik Elektro di Universitas Trisakti Jakarta tahun 2001. Disamping sebagai praktisi IT di perusahaan IT Services, juga aktif mengajar di Binus University sejak 1999.

Preview, Resized dan Upload Gambar

Preview dan Upload Resized Image

Preview dan Upload Resized Image

Bagaimana cara upload gambar, dimana gambar yang mau diupload bisa di-preview dulu?
Nah… kali ini saya berikan coding untuk preview gambar yang mau diupload.
Disini juga diberikan cara untuk resized gambar sesuai dengan resolusi yang diinginkan.

Untuk upload file gambar, kita sediakan dulu HTML form dengan input type file berikut ini.
Ketika kita memilih file gambar yang akan di upload, maka gambar tersebut akan tampil di bagian div class preview.
Ini dilakukan oleh coding Javascript dengan nama fungsi readURL().

Dalam fungsi readURL() juga dimasukan coding untuk validasi apakah file yang dipilih itu adalah file gambar (.jpg) atau bukan.

Tombol “Upload Now” juga diberikan validasi checkSize() untuk memeriksa ukuran file yang mau diupload. Pada contoh coding ini diberikan batas ukuran file yang mau diupload adalah 200KB.

<html>
<head>
<title>Preview dan Upload Resized Image</title>
<style>
div.preview {max-width:300px;height:200px;border:10px solid #000000;}
img.preview {width:100%;height:100%;}
</style>
<script>
function checkSize(max_img_size)
{   var input = document.getElementById("imgfile");
    if(input.files.length==0)
	{	alert("Pilih file lebih dulu!");
		return false;
	}
	if(input.files && input.files.length == 1)
    {   if (input.files[0].size > max_img_size) 
        {  alert("Ukuran file harus di bawah " 
                  + (max_img_size/1024) + " KB");
            return false;
        }
    }
	return true;
}
</script>
</head>
<body>
<h1>Preview dan Upload Resized Image</h1>
<div class="preview"><img class="preview" id="prevImage" src="noimagepreview.png" alt="Preview Image" /></div>
<br/>
<form id="Imgfrm" method="post" enctype="multipart/form-data" onsubmit="return checkSize(204800);">
	Select JPG file: <input name="uploadedfile" id="imgfile" type="file" onchange="readURL(this)"; /> 
	<input type="submit" name="upload" value="Upload Now" /> 
</form>
<script>
function readURL(input)
{ 	var ext = input.value.split('.').pop().toLowerCase();
	if (ext!='jpg')
	{	alert("Pilih file JPG!");}
	else 
	{	if (input.files && input.files[0])
		{	var reader = new FileReader();
			reader.onload = function (e)
			{document.getElementById('prevImage').src=e.target.result;}
			reader.readAsDataURL(input.files[0]);
		}
	}
}
</script>
</body>
</html>

Setelah HTML Form dan Validasi Javascript sudah dibuat, berikutnya adalah proses upload gambar dengan resize. Maksudnya adalah upload file dengan cara resize resolusi gambar.
Berikut ini coding PHP untuk proses upload gambar dengan resize.

<?php
function resize($newWidth, $targetFile, $originalFile)
{   $img = imagecreatefromjpeg($originalFile);
    list($width, $height) = getimagesize($originalFile);
    $newHeight = ($height / $width) * $newWidth;
    $tmp = imagecreatetruecolor($newWidth, $newHeight);
    imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
    if (file_exists($targetFile)) {unlink($targetFile);}
    imagejpeg($tmp, "$targetFile.jpg");
}
if(isset($_POST['upload']))
{	$uploadedfile = $_FILES['uploadedfile']['name'];
	$ext = strtolower(pathinfo($uploadedfile, PATHINFO_EXTENSION));
	if ($ext!='jpg') die ("Error: Harap Upload file JPG!");
	$target_path = "img/A01.jpg";
	resize('300' , $target_path , $uploadedfile);
}
?>

Selamat mencoba. Semoga berhasil.

Upload Download File dengan PHP

Upload Download File

Upload Download File

Pada kesempatan ini saya ingin memberikan coding untuk upload dan download file dengan web browser.
Upload dan download file merupakan fitur yang umum digunakan di sebuah website.

Untuk membuat fitur upload, kita sediakan HTML form dengan atribut-atribut sebagai berikut.

<form enctype="multipart/form-data" 
      action="uploader.php" 
      method="post" 
      onsubmit="return checkSize(1048576);">
<input type="file" id="fileupload" name="uploadedfile"  />
<input type="submit" value="Upload File" />

Kemudian sediakan field dengan tag input bertipe “file” dan sebuah tombol “Upload File” dengan tag input bertipe ‘submit’. Jika tombol tersebut di click maka akan menjalankan file uploader.php yang ditulis pada form atribut action. Sebelum uploader.php dijalankan, form akan melakukan validasi dengan fungsi javascript checksize(1048576), yakni fungsi javascript untuk membatasi ukuran file yang diupload maksimum 1048576 Bytes atau 1 MB.

Berikut ini coding selengkapnya. Coding ini Anda simpan dengan nama file “index.php”.
Coding dibawah ini berisi form upload dan HTML table yang berisi file yang telah di upload.
Juga link untuk download filenya.

<!doctype html>
<html>
<head>
<title>Upload Download File</title>
<style>
html, body {font:12px Arial,Helvetica,sans-serif;}
fieldset {border:1px solid #ff0000; width:400px;}
legend {border:1px solid #ff0000;}
table {border-collapse:collapse;width:500px;}
td, th {border:1px solid #c0c0c0;padding:5px;}
th{background:#ff0000;color:#ffffff;}
</style>
<script type="text/javascript">
function checkSize(max_img_size)
{   var input = document.getElementById("fileupload");
    if(input.files && input.files.length == 1)
    {	if (input.files[0].size > max_img_size) 
        {  alert("Ukuran file harus di bawah " 
                  + (max_img_size/1024/1024) + " MB");
            return false;
        }
    }
    return true;
}
</script>
</head>
<body>
<form enctype="multipart/form-data" action="uploader.php" method="post" 
      onsubmit="return checkSize(1048576);">
<fieldset>
<legend>Upload File Max 1 MB</legend>
Choose a file to upload: <input name="uploadedfile" type="file" id="fileupload" /><br />
<input type="submit" value="Upload File" />
</fieldset>
</form>
<br/>
<table>
<tr>
<th>File Name</th>
<th>Upload Date</th>
<th>Type</th>
<th>Size</th>
<th>Delete</th>
</tr>
<?php
if ($handle = opendir('./files/'))
{	while (false !== ($file = readdir($handle)))
    {   if($file!=="." && $file !=="..")
	{	echo "<tr><td><a href=\"download.php?id=" . urlencode($file). "\">$file</a></td>";
		echo "<td>" . date ("m/d/Y H:i", filemtime("files/".$file)) . '</td>';
		echo "<td>" . pathinfo("files/".$file, PATHINFO_EXTENSION) . ' file </td>';
		echo "<td>" . round(filesize("files/".$file)/1024) . ' KB</td>';
		echo "<td><a href=\"hapus.php?id=$file\">Del</a></td></tr>";
        }
    }
    closedir($handle);
}
?>
</table>
</body>
</html>

Berikut ini coding untuk proses upload file. Coding ini Anda simpan dengan nama file “uploader.php”.
Coding ini akan dijalankan ketika tombol “Upload File” di click.

<?php
$target_path = "files/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{ header("Location: index.php");}
else {echo "Error uploading file. Please try again!";}
?>

Coding berikutnya adalah untuk proses download file. Untuk download file yang telah diupload, kita sediakan link di HTML table yang ada di file index.php diatas.
Coding di bawah ini Anda simpan dengan nama file “download.php”.

<?php
$direktori = "./files/";
$filename = $_GET['id'];
if(file_exists($direktori.$filename)){
	$file_extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
	switch($file_extension){
	  case "pdf": $ctype="application/pdf"; break;
	  case "exe": $ctype="application/octet-stream"; break;
	  case "zip": $ctype="application/zip"; break;
	  case "rar": $ctype="application/rar"; break;
	  case "doc": $ctype="application/msword"; break;
	  case "xls": $ctype="application/vnd.ms-excel"; break;
	  case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
	  case "gif": $ctype="image/gif"; break;
	  case "png": $ctype="image/png"; break;
	  case "jpeg":
	  case "jpg": $ctype="image/jpg"; break;
	  default: $ctype="application/octet-stream";
	}
	if ($file_extension=='php'){
	  echo "<h1>Access forbidden!</h1>
		<p>Please contact Administrator.</p>";
	  exit;
	}
	else{
	  header("Content-Type: octet/stream");
	  header("Pragma: private"); 
	  header("Expires: 0");
	  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	  header("Cache-Control: private",false); 
	  header("Content-Type: $ctype");
	  header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
	  header("Content-Transfer-Encoding: binary");
	  header("Content-Length: ".filesize($direktori.$filename));
	  readfile("$direktori$filename");
	  exit();   
	}
}else{  echo "<h1>Access forbidden!</h1>
	      <p>Please contact Administrator.</p>";
	exit;
}
?>

Coding terakhir ini adalah untuk delete file. Link untuk delete file juga ada di HTML table pada file index.php di atas.

<a href=\"hapus.php?id=$file\">Del</a>

Simpanlah coding di bawah ini dengan nama file “hapus.php”.

<?php
$id = $_GET["id"];
unlink("files/".$id);
header("location:index.php");
?>

Silakan Anda coba. Semoga sukses ya…

Membuat Table dengan CSS dan tag DIV

css table div

css table div

Selain menggunakan HTML tag <table>, Anda juga dapat membuat table dengan menggunakan tag <div> dan CSS.

CSS menyediakan atribut display:table untuk menampilkan element HTML berbentuk table.

Berikut ini coding selengkapnya:

<html>
<head>
<title>CSS Table Div</title>
<style>
html,body{font:14px arial,verdana,san-serif;}
.container{
    display:table;
    width:400px;
    border-collapse:collapse;
	margin:0 auto;
	line-height:25px;
}
.table-row:hover{background-color:#99ccff;}
.heading{
    font-weight:bold;
    display:table-row;
    background-color:#C91622;
    text-align:center;
    line-height:35px;
    color:#ffffff;
}
.table-row{  
    display:table-row;
    text-align:center;
}
.strip{  
    display:table-row;
    text-align:center;
	background-color:#f0f0f0;
}
.col{ 
	display:table-cell;
 	border:1px solid #CCC;
}
</style>
</head>
<body>
<h1>Membuat Table dengan CSS dan tag DIV</h1>
<hr/><br/>
<div class="container">
    <div class="heading">
		<div class="col">No.</div>
		<div class="col">Browser</div>
    </div>
	<div class="table-row">
		<div class="col">1</div>
		<div class="col">IE</div>
    </div>
	<div class="table-row strip">
        <div class="col">2</div>
		<div class="col">Firefox</div>
    </div>
	<div class="table-row">
        <div class="col">3</div>
		<div class="col">Chrome</div>
    </div>
	<div class="table-row strip">
        <div class="col">4</div>
		<div class="col">Opera</div>
    </div>
	<div class="table-row">
        <div class="col">5</div>
		<div class="col">Safari</div>
    </div>
</div>
</body>
</html>

Silakan mencoba.

 

 

Export Data MySQL ke Excel .csv

Pada Aplikasi Web Database biasanya kita memerlukan fasilitas untuk export atau download data dari database MySQL ke Excel.

Kali ini saya akan berikan contoh coding PHP untuk membuat fasilitas export data MySQL ke dalam file .csv yang dapat dibuka dengan program Excel.

Contoh coding PHP berikut ini untuk mendownload data pada tabel “users di database “students”, berikut ini coding selengkapnya.

<?php
error_reporting(0);
date_default_timezone_set('Asia/Jakarta');
$Timestamp = date('Ymd@His');
// Connect to DB
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'students';
$tbl	= 'users';
$filename = "$tbl"."_"."$Timestamp".".csv";
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname) or die ('Error connecting to db!');
// Get all fields names in the table.
$result = mysqli_query($conn,"SHOW COLUMNS FROM $tbl") or die("Error running query!");
$numofcol = mysqli_num_rows($result);
$out = '';
if ($numofcol > 0)
{   while ($row = mysqli_fetch_assoc($result))
	{	$out .='"'.$row['Field'].'",'; }
}
$out .="\n";
// Add all records in the table to $out.
$result=mysqli_query($conn,"SELECT * FROM $tbl") or die("Error run query");
while ($l = mysqli_fetch_array($result))
{	for ($i = 0; $i < $numofcol; $i++)
	{	$out .='"'.$l["$i"].'",'; }
	$out .="\n";
}
//Download $filename.csv
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=$filename");
header("Content-Transfer-Encoding: binary ");
echo $out;
//or save $out as $filename.csv on server
//file_put_contents($filename, $out);
?>

Jika Anda ingin menyimpan file csv di server, Anda tinggal membuka comment pada 2 baris terakhir.

Selamat mencoba, semoga sukses.

Selected Table Row dengan CSS

Selected Table Row dengan CSS

Selected Table Row dengan CSS

Table hover sudah pernah kita bahas dan kali ini saya berikan cara supaya kita bisa click baris-baris pada table. Selain warna yang berubah pada baris di tunjuk oleh pointer mouse, kita juga bisa di click beberapa baris untuk memilihnya (selected table row).

Hal ini dapat dilakukan dengan menggunakan fungsi javascript querySelectorAll() dan addEventListener().
Berikut ini coding selengkapnya:

<html>
<head>
<title>CSS Select Table Row</title>
<style>
.mytable,th,td{border:1px solid #ffffff;border-collapse:collapse;font:12px verdana,arial,sans-serif;}
.mytable th {background:#000099;color:#ffffff;padding:10px;font-weight:bold;}
.mytable td {padding:8px;}
.mytable tr {background:#f0f0f0;}
.mytable tr:hover td {background:#c0c0c0;}
.mytable tr.selected {background: #00aacc;}
</style>
</head>
<body>
<table class="mytable">
    <tbody>
        <tr><th>No.</th><th width="200">Table Head 1</th><th width="200">Table Head 2</th></tr>
        <tr><td>1</td><td>content</td><td>content</td></tr>
        <tr><td>2</td><td>content</td><td>content</td></tr>
	<tr><td>3</td><td>content</td><td>content</td></tr>
	<tr><td>4</td><td>content</td><td>content</td></tr>
	<tr><td>5</td><td>content</td><td>content</td></tr>
	<tr><td>6</td><td>content</td><td>content</td></tr>
    </tbody>
</table>
<script type="text/javascript">
var trs = document.querySelectorAll("tr");
for (var i = 0; i < trs.length; i++) {
    trs[i].addEventListener("click", function() 
    {   if(this.className.indexOf("selected") == 0)
            this.className = "";
        else 
            this.className = "selected";
    });
}
</script>
</body>
</html>

Selamat mencoba, semoga sukses.

Membuat Tombol Push Botton untuk Link href dengan CSS

Link Berbentuk Tombol

Link Berbentuk Tombol

Umumnya kita membuat html link (tag a href) berbentuk text yang bisa di click. nah… disini saya akan berikan cara membuat supaya link (a href) berbentuk tombol seperti html tag input atau tag botton dengan menggunakan CSS3.

Berikut ini coding HTMM dan CSS untuk membuat tombol Push Botton untuk Link href dengan CSS:


<html>
<head>
<title>Tombol Link</title>
<style>
a.tombol {
   background-color:#b0b0b0;
   font:bold 20px arial,sans-serif;
   text-decoration:none;
   color:#fff;
   margin:5px;
   position:relative;
   padding:10px 20px;
   border-radius: 5px;
   box-shadow: inset 0px 1px 0px #a0a0a0,
                     0px 3px 0px 0px #808080,
                     0px 5px 3px #999;}
a.tombol:active {
   background-color:#ff0000; top:3px;
   box-shadow: inset 0px 1px 0px #a0a0a0,
                     0px 1px 0px 0px #808080,
                     0px 1px 3px #999;}
</style>
</head>
<body>
<h2>Membuat Tombol Push Botton<br/>
untuk Link href dengan CSS</h2>
<hr align="left" width="200"/>
<a class="tombol" href="?t=1">1</a>
<a class="tombol" href="?t=2">2</a>
<a class="tombol" href="?t=3">3</a><br/><br/><br/>
<a class="tombol" href="?t=4">4</a>
<a class="tombol" href="?t=5">5</a>
<a class="tombol" href="?t=6">6</a><br/><br/><br/>
<a class="tombol" href="?t=7">7</a>
<a class="tombol" href="?t=8">8</a>
<a class="tombol" href="?t=9">9</a><br/><br/><br/>
<a class="tombol" href="?t=*">*</a>
<a class="tombol" href="?t=0">0</a>
<a class="tombol" href="?t=#">#</a><br/><br/><br/>
<hr align="left" width="200"/>
</body>
</html>

Selamat mencoba, semoga berhasil.

Membaca Email dengan PHP

Email IMAP

Membaca Email dengan PHP

PHP memiliki fungsi untuk mengambil dan membaca email melalui internet protokol POP3 dan IMAP. Port yang kita gunakan untuk itu adalah 993 (IMAP SSL)
Fungsi-fungsi yang digunakan adalah:

imap_open($hostname,$username,$password);
imap_fetch_overview($mbox,”1:$MN”,0);
imap_header($mbox, $msg);

Coding berikut ini menampilkan semua email dari GMail Anda, seperti pada gambar di atas.

<!DOCTYPE html>
<html>
<head>
<title>Baca Email</title>
<style type="text/css">
#mytable {width:800px;border:1px #a9c6c9 solid;font:12px verdana,arial,sans-serif;color:#333333;}
#mytable td {padding:8px;}
#mytable tr:hover td {background:#a0a0a0;color:#ffffff;}
#mytable th {background-color:#000099;color:#ffffff;padding:8px; }
#mytable tr:nth-child(odd) {background-color:#c0c0c0;}
#mytable tr:nth-child(even) {background-color:#f0f0f0;}
</style>
<script type="text/javaScript">
function buka(url)
{newwindow = window.open(url, '_blank', "status=yes, height=300, width=400, resizeable=yes");}
</script>
</head>
<body>
<?php
$hostname = '{imap.gmail.com:993/ssl/novalidate-cert}[Gmail]/All Mail';
$username = 'your_email@gmail.com';
$password = 'your_gmail_password';
$mbox = imap_open($hostname,$username,$password) or die('Cannot connect to mail server: ' . imap_last_error());
$MC=imap_check($mbox);
$MN=$MC->Nmsgs;
$overview=imap_fetch_overview($mbox,"1:$MN",0);
$size=sizeof($overview);
echo "<h1>Baca Email</h1>
	<table id='mytable'>
	<tr><th>Msg_Id</th><th>From</th><th>Email</th><th>Date</th><th>Subject</th><th>Size</th></tr>";
for($i=$size-1;$i>=0;$i--)
{	$val=$overview[$i];
	$msg=$val->msgno;
	$date=date('Y-m-d H:i:s', strtotime($val->date));
	$subj=isset($val->subject)?$val->subject:"(no subject)";
	$header = imap_header($mbox, $msg);
	$from = $header->from;
	$email_size = $val->size;
	foreach ($from as $id => $object) 
	{	$fromname = isset($object->personal)?$object->personal:$object->mailbox;
		$fromaddress = $object->mailbox . "@" . $object->host;
	}
	echo "<tr onclick=\"buka('read_email.php?msgno=$msg&msgdate=$date&msgfrom=$fromname&msgemail=$fromaddress&msgsubj=$subj');\">
		<td>$msg</td> <td>$fromname</td> <td>$fromaddress</td> <td>$date</td> <td>$subj</td><td>$email_size</td></tr>";
}
echo "</table>";
imap_close($mbox);
?>
</body>
</html>

Anda dapat click baris pada table-nya untuk membaca isi email Anda pada window browser baru.

Berikut ini coding untuk membaca isi email Anda

<?php
function get_mime_type(&$structure)
{   $primary_mime_type = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
    if($structure->subtype) {return $primary_mime_type[(int) $structure->type] . '/' . $structure->subtype;}
    return "TEXT/PLAIN";
}
function get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false)
{   if (!$structure) {$structure = imap_fetchstructure($stream, $msg_number);}
    if($structure)
    {   if($mime_type == get_mime_type($structure))
        {   if(!$part_number) {$part_number = "1";}
            $text = imap_fetchbody($stream, $msg_number, $part_number);
            if($structure->encoding == 3) {return imap_base64($text);}
			else if ($structure->encoding == 4) {return imap_qprint($text);}
			else {return $text;}
        }
        if ($structure->type == 1) /* multipart */
        {   while (list($index, $sub_structure) = each($structure->parts))
            {   if ($part_number) {$prefix = $part_number . '.';}
                $data = get_part($stream, $msg_number, $mime_type, $sub_structure, $prefix . ($index + 1));
                if ($data) {return $data;}
            }
        }
    }
    return false;
}
$msg_number = $_GET['msgno'];
$msg_from = $_GET['msgfrom'];
$msg_email = $_GET['msgemail'];
$msg_date = $_GET['msgdate'];
$msg_subject = $_GET['msgsubj'];
$hostname = '{imap.gmail.com:993/ssl/novalidate-cert}[Gmail]/All Mail';
$username = 'your_email@gmail.com';
$password = 'your_gmail_password';
$stream = imap_open($hostname,$username,$password) or die('Cannot connect to mail server: ' . imap_last_error());
$isiemail = get_part($stream, $msg_number, "TEXT/HTML");
echo "<h2>$msg_subject</h2>
	  From: $msg_from ($msg_email) <br />
	  Date: $msg_date<br/>
	  <hr />
	  $isiemail";
?> 

Selamat mencoba, semoga sukses.

Send Email dengan PHP

SendEmail1

PHP memiliki fungsi mail() untuk mengirim email, dengan format:

$sent = @mail($to, $subject, $message, $headers);

Dimana $to adalah alamat email penerima, $subject adalah subyek emailm $message adalah isi/pesan emailnya dan $headers berisi email header yang formatnya harus sesuai dengan standard email yang dikirim.

Dibawah ini diberikan coding HTML berupa form email yang dapat diisi dengan parameter yang diperlukan oleh fungsi PHP tersebut. Email yang dikirim dapat berisi 1 file attachment.

Berikut ini coding PHP selengkapnya.

<?php
if(isset ($_POST["send"]))
{   $from = $_POST["from"];
    $to	= $_POST["to"];
    $subject = $_POST["subject"];
    $message = nl2br($_POST["msg"]);
    $upload_name = $_FILES["upload"]["name"];
    $upload_type = $_FILES["upload"]["type"];
    $upload_size = $_FILES["upload"]["size"];
    $upload_temp = $_FILES["upload"]["tmp_name"]; 

    $num = md5(time());
    //Normal headers
    $headers  = "From:".$from."\r\n";
    $headers  .= "MIME-Version: 1.0\r\n";
    $headers  .= "Content-Type: multipart/mixed; ";
    $headers  .= "boundary=".$num."\r\n";
    $headers  .= "--$num\r\n";
    // This two item help avoid spam
    $headers .= "Message-ID: <".gettimeofday(true)."-TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
    $headers .= "X-Mailer: PHP v".phpversion()."\r\n";
    // With html message
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n"; 
    $headers .= "Content-Transfer-Encoding: 8bit\r\n";
    $headers .= "".$message."\n";
    $headers .= "--$num";
    // With Attachment
    if ($upload_name!="")
    {	$fp = fopen($upload_temp, "rb");
	$file = fread($fp, $upload_size);
	$file = chunk_split(base64_encode($file));
	$headers  .= "\nContent-Type:".$upload_type." ";
	$headers  .= "name=\"".$upload_name."\"r\n";
	$headers  .= "Content-Transfer-Encoding: base64\r\n";
	$headers  .= "Content-Disposition: attachment; ";
	$headers  .= "filename=\"".$upload_name."\"\r\n\n";
	$headers  .= "".$file."\r\n";
	$headers  .= "--".$num."--\n";
	fclose($fp);
    }
    else 
    { $headers .= "--\n"; } //close boundary
    // SEND MAIL
    $sent = @mail($to, $subject, $message, $headers);
    if($sent)
    {	echo 'Mail has been sent! <br />
           Please check both inbox and spam folder! <br /><br />';
    }
    else
    {	echo 'Mail can not be sent! Please try again later! <br /><br />';
    }
    unset ($_POST["send"]);
}
?>
<html>
<body>
<head>
<title>Send Email</title>
<script type="text/javascript">
function clearMe()
{	document.getElementById("fl").value='';
	document.getElementById("upload").innerHTML="<input type=\"file\" id=\"fl\">";
}
function cekData()
{	if (formemail.from.value == "")
	{	alert("Please fill in from field!");
		formemail.from.focus();
		return false;
	}
	if (formemail.to.value == "")
	{	alert("Please fill in to field!");
		formemail.to.focus();
		return false;
	}
	if (formemail.subject.value == "")
	{	alert("Please type the subject!");
		formemail.subject.focus();
		return false;
	}
	if (formemail.msg.value == "")
	{	alert("Please type the message!");
		formemail.msg.focus();
		return false;
	}
	if (formemail.problemdetail.value == "")
	{	alert("Problem detail must be filled!");
		formemail.problemdetail.focus();
		return false;
	}
	var filter = new RegExp(
		"^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" +
		"[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
	if (!filter.test(formemail.to.value) && formemail.to.value != "")
	{	alert("Please enter to with valid email address!");
		formemail.to.focus();
		return false;
	}	   
	else
		return true;   
}
</script>
</head>
<form id="idformemail" name="formemail" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>" enctype="multipart/form-data" onsubmit="return cekData();">
<table>
<tr><td>From</td><td>:</td><td><input type="text" name="from" id="from" size="54" value="Helpdesk Team <helpdesk@kampushendra.com>"></td></tr>
<tr><td>To</td><td>:</td><td><input type="text" name="to" id="to" size="54"></td></tr>
<tr><td>Subject</td><td>:</td><td><input type="text" name="subject" id="subject" size="54"></td></tr>
<tr><td>Message</td><td>:</td><td><textarea name="msg" rows="4" cols="40"></textarea></td></tr>
<tr><td>Attachment</td><td>:</td><td><input type="file" name="upload" id="fl">
<input type="button" value="Clear" onClick="clearMe()"></td></tr>
<tr><td></td><td></td><td><span id="attach"><input type="submit" value="Submit" id="send" name="send"> </span></td></tr>
</table>
</form>
</body>
</html>

Selamat mencoba, semoga sukses.

Membuat File Log Visitor Website dengan PHP

Log Visitor

Log Visitor

PHP memiliki build-in function untuk membaca dan menulis file. Kita akan gunakan function ini untuk membuat catatan/log pengunjung/visitor website kita dengan coding PHP.

Berikut ini Coding PHP selengkapnya.

<?php
error_reporting(0);
date_default_timezone_set("Asia/Jakarta");
main();
function outDir()
{	$outPath = $outPath.'visitorlog\\';
	if (!file_exists($outPath))
	{ mkdir($outPath,0777) or die("can't make subfolder"); }
	return $outPath;
}

function openfile($path,$createDate)
{	$outFile = $path.$createDate.'.html';
	if (!file_exists($outFile))
	{ $fh = fopen($outFile, 'w') or die("can't open file");
	  initiateoutput($fh,$createDate);
	}
	else
	{ $fh = fopen($outFile, 'a') or die("can't open file");	}
	return $fh;
}
function createoutput($file,$execTime,$url,$ipAddress,$browser)
{	fwrite($file,"<tr><td align='center'>$execTime</td><td>".
        strtoupper($url).
        "</td><td>$ipAddress</td><td>$browser</td></tr>");
	fclose($file);
}

function initiateoutput($fh,$createDate)
{	fwrite($fh,"<html>\n");
	fwrite($fh,"<head><title>Laporan</title></head>\n");
	fwrite($fh,"<body>\n");
	fwrite($fh,"</h1>");
	fwrite($fh,"<table border='1' align='center' valign='center'>\n
                    <caption><h1>Data Pengunjung Website per $createDate</h1>
                    </caption>\n");
	fwrite($fh,"<tr><th width='200' align='center'>Waktu</th>
                    <th width='200' align='center'>Halaman</th>
                    <th width='100' align='center'>IP Address</th>
                    <th width='250' align='center'>Browser</th>\n");
}
function main()
{	$execTime = date('Y-m-d H:i:s');
	$createDate = date('d-M-Y');
	$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
	$ipAddress   = gethostbyname( $hostname);
	$browser = $_SERVER['HTTP_USER_AGENT'];
	$path = outDir();
	$file = openfile($path,$createDate);
	createoutput($file,$execTime,$url,$ipAddress,$browser);
	$file = openfile($path,$createDate);
	include "$path"."$createDate".".html";
}
?>

Silakan Anda pelajari setiap baris dari coding tersebut.

Selamat mencoba, semoga berhasil.

Drop Down List Dinamis dengan JavaScript

drop down list 1

drop down list 1

Drop Down List 2

Drop Down List 2

Yang dimaksud dengan “Drop Down List Dinamis” disini adalah ketika Anda memilih satu item dalam drop down list box maka drop down list box berikutnya akan berisi list item yang sesuai dengan pilihan Anda.

Drop down list bisa Anda buat dengan tag <select> <option> seperti coding dibawah ini.

<body>
<h3>Dynamic Drop Down List dengan JavaScript</h3>
<form name="form1">	
	<select  name="Category" onChange="SelectCat2();" >
	<option value="">Pilih Jenis Produk</option>
	<option value="Desktop">Desktop</option>
	<option value="Laptop">Laptop</option>
	<option value="Smartphone">Smartphone</option>
	</select>
	<select id="SubCat" name="SubCat">
	<option value="">Pilih Merk</option>
	</select>
</form>
</body>

Pada contoh di atas kita buat 2 field drop down list, yakni: field “Category” dan field “SubCat”.
Pada field “Category” diberikan atribut onChange=”SelectCat2();” supaya ketika field itu berubah isinya maka akan menjalankan fungsi javascript “SelectCat2()”.

Berikut ini coding JavaScript selengkapnya.

function SelectCat2(){
	removeAllOptions(document.form1.SubCat);
	addOption(document.form1.SubCat, "", "Pilih Merk", "");
	if(document.form1.Category.value == 'Desktop')
	{	addOption(document.form1.SubCat,"Acer", "Acer");
		addOption(document.form1.SubCat,"Dell", "Dell");
		addOption(document.form1.SubCat,"Lenovo", "Lenovo");
	}
	if(document.form1.Category.value == 'Laptop')
	{	addOption(document.form1.SubCat,"Asus", "Asus");
		addOption(document.form1.SubCat,"Acer", "Acer");
		addOption(document.form1.SubCat,"Sony Vaio", "Sony Vaio");
	}
	if(document.form1.Category.value == 'Smartphone')
	{	addOption(document.form1.SubCat,"Samsung", "Samsung");
		addOption(document.form1.SubCat,"LG", "LG");
		addOption(document.form1.SubCat,"Sony Xperia", "Sony Xperia");
	}
}
function removeAllOptions(selectbox)
{	var i;
	for(i=selectbox.options.length-1;i>=0;i--)
	{	selectbox.remove(i); }
}
function addOption(selectbox, value, text )
{	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
}

Anda bisa meletakan coding javascript ini di dalam tag head HTML.

Selamat mencoba, semoga bermanfaat.