Monday, April 23, 2012

Membuat Sendiri Article Rewriter dengan Ajax

Apa sih article rewriter? Article rewriter adalah semacam program yang menulis ulang suatu tulisan atau artikel dengan kata-kata yang berbeda dari artikel aslinya, sehingga tercipta konten yang sedikit unik. Bagi yang malas buat buat tulisan tapi pengen ngejar dollar dari google adsense, biasanya menggunakan articel rewriter untuk copy paste suatu artikel. Tapi di sini kita akan melihat bagaimana kode untuk membuat kode rewriter sederhana.
Kita akan membuat kode rewriter dengan menggunakan PHP, MySQL dan Ajax jQuery untuk komunikasi data dan menampilkannya. Kita juga akan belajar bagaimana membuat highlight kata-kata yang sudah di rewrite. Untuk jelasnya silahkan lihat Demo Article Rewriter. Dan berikut algoritma dan kodenya:
Algoritma rewriter adalah sebagai berikut:
  1. Membuat textarea untuk teks artikel yang akan di rewrite
  2. Mengambil teks artikel dan mengirimnya melalui ajax
  3. Memproses teks yang dikirim ke server untuk di-rewrite, dengan cara mencari sinonim kata tersebut di database.
  4. Menampilkan hasil rewrite.

Membuat textarea untuk teks artikel yang akan di rewrite


<textarea rows="10" cols="80" name="komentar" id="artikel"></textarea>
<b>Result:</b>
<br>
<img src="ajax-loader.gif" style="display:none" id="loading">
<br>
<!---tempat menampilkan hasil rewrite--->
<div id="re-articel" style="width:650;height:200;border:black 1px solid;
text-align:left;padding:10;overflow:auto">
</div>

Mengambil teks artikel dan mengirimnya melalui ajax


<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script>
$(document).ready(function(){
    $("#tombol").click(function(){
        //menampilkan animasi loading
        $("#loading").show();

        //mengambil teks dari textarea
        var artikel = $("#artikel").val();

        //kirim teks artikel ke server
        $.ajax({
            type: "POST",
            url: "rewriter.php",
            data: "artikel="+artikel,
            success: function(msg){
                //jika sudah dikirim ditampilkan
                $("#re-articel").html(msg);
                $("#loading").hide();
            }
        });
    });

    $("#reset").click(function(){
        $("#re-articel").html("");
    });
});
</script>

Memproses teks yang dikirim ke server untuk di-rewrite, dengan cara mencari sinonim kata tersebut di database.

Pada kode di atas kita mengirim teks artikel ke server untuk diolah oleh kode PHP rewriter.php

<?php
if($_POST['artikel']){
include "koneksi.php";
$artikel = nl2br($_POST['artikel']);

//kita pisahkan kalimat berdasarkan spasi
//untuk mengambil kata-kata
$ar = explode(" ",$artikel);

$hasil = "";
foreach($ar as $value){
    if(!preg_match("/\.|'/",$value)){
        //kita cari kata-kata tersebut di database MySQL
        $cari = mysql_query("select * from sinonim where kata1='$value'");
        $j = mysql_num_rows($cari);
        if($j>0){
            $ka = mysql_fetch_array($cari);
            $hasil = $hasil."<span class='re'>".stripslashes($ka['kata2'])."</span> ";
        }else{
            $cari2 = mysql_query("select * from sinonim where kata2='$value'");
            $j2 = mysql_num_rows($cari2);
            if($j2>0){
                $ka2 = mysql_fetch_array($cari2);
                $hasil = $hasil."<span class='re'>".stripslashes($ka2['kata1'])."</span> ";
            }else{
                $hasil = $hasil.stripslashes($value)." ";
            }
        }
    }else{
        $ka = preg_replace("/\./","",$value);
        $cari = mysql_query("select * from sinonim where kata1='$ka'");
        $j = mysql_num_rows($cari);
        if($j>0){
            $kax = mysql_fetch_array($cari);
            $hasil = $hasil."<span class='re'>".stripslashes($kax['kata2'])."</span>. ";
        }else{
            $hasil = $hasil.stripslashes($ka).". ";
        }
    }
}
echo $hasil;
}
?>

Menampilkan hasil rewrite.

$("#re-articel").html(msg);
Di mana #re-articel adalah tag <div> yang ber ID=re-articel
Untuk kode lengkapnya silahkan download source code. Untuk Demo lihat di article rewriter.

Wednesday, April 18, 2012

Fungsi File System pada PHP

Hallo sobat blogger baru update tutorial lagi neh..hehehehe maaf yah ada urusan sama otak hehehe.....

Ok,kali ini saya masih membahas tutorial PHP dan kali ini saya menjelaskan tentang FUNGSI FILE SYSTEM pada PHP..



8. Fungsi Filesystem

  1. basename — Menghasilkan nama file dari suatu path
  2. chmod — Mengubah mode akses file
  3. chown — Mengubah pemilik file
  4. copy — Meng-copy file
  5. dirname — Menghasilkan nama direktori dari suatu path file
  6. disk_free_space — Menghasilkan sisa space disk suatu direktori
  7. disk_total_space — Menghasilkan total size direktori
  8. fclose — Menutup file yang dibuka
  9. fgetc — Mengambil karakter-karakter suatu file teks
  10. fgets — Mengambil baris-baris dari file
  11. file_exists — Cek apakah file atau direktori tersebut ada atau tidak
  12. file_get_contents — Membaca isi file keseluruhan
  13. file_put_contents — Menulis teks ke file
  14. file — Membaca isi file ke dalam array
  15. fileatime — Mendapatkan waktu akses terakhir suatu file
  16. filesize — Mendapatkan ukuran file
  17. filetype — Mendapatkan tipe file
  18. fopen — Membuka file atau URL
  19. is_dir — Cek apakah filename adalah sebuah directori
  20. is_executable — Cek apakah filename bisa di eksekusi
  21. is_file — Cek apakah filename adalah sebuah file
  22. is_readable — Cek apakah filename bisa dibaca
  23. is_writable — Cek apakah filename bisa ditulis
  24. mkdir — Membuat direktori
  25. move_uploaded_file — Memindahkan file yang diupload ke lokasi baru
  26. rename — Rename file atau directori
  27. rmdir — Delete direktori
  28. unlink — Delete file

basename

Fungsi : Menghasilkan nama file dari suatu path
Sintaks :
basename ( string $path [, string $suffix ] )
Parameter :
$path, adalah alamat file dengan lokasi direktorinya, contoh : /var/www/gambar/fileku.jpg
$suffix, akan menghilangkan akhirannya sesuai string $suffix
Contoh :
<?php
$path = "/home/httpd/html/index.php";
$file = basename($path);
echo $file;                         //Hasilnya index.php

$file = basename($path, ".php");
echo $file;                         //Hasilnya index
?>

chmod

Fungsi : Mengubah mode akses file, untuk linux, unix
Sintaks :

chmod ( string $filename , int $mode )
Contoh :

<?php
// Read dan write hanya untuk pemilik
chmod("/direktori/filesaya", 0600);

// Pemilik bisa apa aja, read dan execute untuk others
chmod("/direktori/filesaya", 0755);

?>

chown

Fungsi : Mengubah pemilik file
Sintaks :

chown ( string $filename , mixed $user )
Contoh :

<?php
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox" . $file_name ;
$user_name = "root";

// Set pemilik file
chown($path, $user_name);
?>

copy

Fungsi : Mengcopy file
Sintaks :

copy ( string $source , string $dest [, resource $context ] )
Parameter :
$source , adalah file yang akan dicopy
$dest, adalah file tujuan
Contoh :

<?php
$file = 'upload.php';
$newfile = 'uploadcopy.php';

if (!copy($file, $newfile)) {
    echo "gagal copy file $file...\n";
}else{
    echo "File $file berhasil di copy";
}
?>

dirname

Fungsi : Menghasilkan nama direktori dari suatu path file
Sintaks :
dirname ( string $path )
Contoh :
<?php
$path = "/www/gambar/pic.jpg";
$file = dirname($path);
echo $file;

//Hasilnya /www/gambar
?>

disk_free_space

Fungsi : Menghasilkan sisa space disk suatu direktori (dalam bytes)
Sintaks :

disk_free_space ( string $directory )
Contoh :

<?php
//linux, unix
$df = disk_free_space("/");

//Windows:
echo disk_free_space("C:");
echo disk_free_space("D:");
?>

disk_total_space

Fungsi : Menghasilkan total size direktori (dalam bytes)
Sintaks :

disk_total_space ( string $directory )
Contoh :

<?php
//linux , unix
$df = disk_total_space("/");

//Windows:
echo disk_total_space("C:")."<br>";
echo disk_total_space("D:");
?>

fclose

Fungsi : Menutup file yang dibuka
Sintaks :

fclose ( resource $handle )
Contoh :

<?php
$file = fopen('somefile.txt', 'r');

fclose($file);
?>

fgetc

Fungsi : Mengambil karakter-karakter suatu file teks
Sintaks :

fgetc ( resource $handle )
Contoh :
Misal anda punya filesaya.txt, yang isinya :

Desrizal

<?php
$fp = fopen('filesaya.txt', 'r');
if (!$fp) {
    echo 'filesaya.txt nggak ada';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char<br>";
}
?>
Hasilnya :

d
e
s
r
i
z
a
l

fgets

Fungsi : Mengambil baris-baris dari file
Sintaks :

fgets ( resource $handle [, int $length ] )
Parameter :
$handle, adalah file yang akan diambil barisnya
$length, adalah panjang/ukuran file, isi aja kira kira yang melebihi panjang file
Contoh :

<?php
$handle = @fopen("filesaya.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 1000000);
        echo $buffer."<br>";
    }
    fclose($handle);
}
?>

file_exists

Fungsi : Cek apakah file atau direktori tersebut ada
Sintaks :

file_exists ( string $filename )
Contoh :

<?php
$filename = 'filesaya.txt';

if (file_exists($filename)) {
    echo "File $filename ada";
} else {
    echo "File $filename nggak ada";
}
?>

file_get_contents

Fungsi : Membaca isi file/ web keseluruhan menjadi string
Sintaks :

file_get_contents ( string $filename [, int $flags= 0 [, resource $context [, int $offset= -1 
[, int $maxlen= -1 ]]]] )
Parameter :
$filename, file atau web yang akan dibaca isinya
Contoh :

<?php
$homepage = file_get_contents('http://blog.codingwear.com/');
echo $homepage;
?>

file_put_contents

Fungsi : Menulis teks ke file
Sintaks :

file_put_contents ( string $filename , mixed $data [, int $flags= 0 [, resource $context ]] )
$filename, file yang akan ditulis
$data, data yang kan ditulis ke file, bisa string atau array
$flags, option, FILE_APPEND (jika file sudah ada, teks akan ditambahkan)
Contoh :

<?php
$file = 'data.txt';
$nama = 'Desrizal';
file_put_contents($file, $nama);
?>
Contoh di atas akan membuat file data.txt dan menuliskan Desrizal di data.txt

file

Fungsi : Membaca isi file perbatis, dimasukkan ke dalam array
Sintaks :

file ( string $filename [, int $flags= 0 [, resource $context ]] )
Parameter :
$filenama, file yang akan dibaca isinya
$flags, option :
  • FILE_IGNORE_NEW_LINES  : Jangan tambahkan baris baru di akhir elemen array
  • FILE_SKIP_EMPTY_LINES  : Abaikan baris yang kosong
Contoh :

<?php
$lines = file('filesaya.txt');
print_r($lines);
?>

fileatime

Fungsi : Mendapatkan waktu akses terakhir suatu file
Sintaks :

fileatime ( string $filename )
Contoh :

<?php
$filename = 'filesaya.txt';
if (file_exists($filename)) {
    echo "$filename terakhir kali diakses pada: " . date("F d Y H:i:s.", fileatime($filename));
}
//filesaya.txt terakhir kali diakses pada: October 30 2010 17:34:13
?>

filesize

Fungsi : Mendapatkan ukuran file
Sintaks :

filesize ( string $filename )
Contoh :

<?php
$filename = 'filesaya.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';
?>

filetype

Fungsi : Mendapatkan tipe file
Sintaks :

filetype ( string $filename )
Contoh :

<?php
echo filetype('filesaya.txt');  // file
echo filetype('/var/');         // dir
?>

fopen

Fungsi : Membuka file atau URL
Sintaks :

fopen ( string $filename , string $mode [, bool $use_include_path= false [, resource $context ]] )
$filename, namafile atau URL
$mode :
mode Description
'r' Dibuka hanya untuk untuk dibaca; pointer diletakkan di awal file
'r+' Dibuka untuk dobaca dan ditulis; pointer diletakkan di awal file
'w' Dibuka hanya untuk ditulis; pointer diletakkan diawal file, jika file tidak ada, akan dibuat otomatis
'w+' Dibuka untuk dibaca dan ditulis; pointer diletakkan diawal file, jika file tidak ada, akan dibuat otomatis
'a' Dibuka hanya untukditulis; pointer diletakkan di akhir file, jika file belum ada, akan dibuat otomatis.
'a+' Dibuka hanya untukdibaca dan ditulis; pointer diletakkan di akhir file, jika file belum ada, akan dibuat otomatis.
Contoh :

<?php
$handle = fopen("/home/rasmus/file.txt", "r+");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

is_dir

Fungsi: Cek apakah filename adalah sebuah directori
Sintaks :

is_dir ( string $filename )
Contoh :

<?php
if(is_dir('filesaya.txt')){
    echo "Ini adalah direktori";
}else{
    echo "Ini adalah file";
}
?>

is_executable

Fungsi: Cek apakah filename bisa di eksekusi
Sintaks :

is_executable ( string $filename )
Contoh :

<?php
$file = 'filesaya.txt';

if (is_executable($file)) {
    echo $file.' bisa dieksekusi';
} else {
    echo $file.' tidak bisa dieksekusi';
}
?>

is_file

Fungsi: Cek apakah filename adalah sebuah file
Sitaks :


is_file ( string $filename )
Contoh:

<?php
if(is_file('filesaya.txt')){
    echo "Ini adalah file";
}else{
    echo "Ini bukan file";
}
?>

is_readable

Fungsi: Cek apakah filename bisa dibaca
Sintaks:

is_readable ( string $filename )
Contoh :

<?php
if(is_readable('filesaya.txt')){
    echo "file ini bisa dibaca";
}else{
    echo "file ini tidak bisa dibaca";
}
?>

is_writable

Fungsi: Cek apakah filename bisa ditulis
Sintaks :

is_writable ( string $filename )
Contoh :

<?php
if(is_writable('filesaya.txt')){
    echo "file ini bisa ditulis";
}else{
    echo "file ini tidak bisa ditulis";
}
?>

mkdir

Fungsi: Membuat direktori
Sintaks:

mkdir ( string $pathname [, int $mode= 0777 [, bool $recursive= false [, resource $context ]]] )
Contoh:

<?php
mkdir("gambar", 0700);
?>

move_uploaded_file

Fungsi: Memindahkan file yang diupload ke lokasi baru
Sintaks:

move_uploaded_file ( string $filename , string $destination )
Contoh :
Upload multiple file

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
    }
}
?>

rename

Fungsi: Rename file atau directori
Sintaks:

rename ( string $oldname , string $newname [, resource $context ] )
Contoh :

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

rmdir

Fungsi: Delete direktori
Sintaks:

rmdir ( string $dirname [, resource $context ] )
Contoh:

<?php
rmdir('examples');
?>

unlink

Fungsi: Delete file
Sintaks:

unlink ( string $filename [, resource $context ] )
Contoh:

<?php
unlink('test.html');
?> 
 
 
Semoga bermanfaat

Monday, March 19, 2012

Tutorial Membuat Aplikasi Chatting Dengan PHP Ajax

Sekarang mari kita membuat aplikasi chatting dengan menggunakan php ajax dan mysql sebagai database. Di sini kita memanfaatkan ajax untuk komunikasi client (browser) ke server. Ajax setiap detik akan melakukan request ke server (tanpa harus refresh). Di sini kita bisa memanfaat fungsi setTimeout() pada javascript. Fungsi setTimeout() berguna untuk me-set timer setiap berapa per milisecond javascript mengeksekusi suatu fungsi, contoh :
setTimeout("ambilPesan()",1000);
Kode di atas berarti, eksekusi fungsi ambilPesan() setiap 1000 milisecond. Mari kita lihat konsep untuk membuat aplikasi chatting:
  1. Kita buat objek ajax yang nantiya bertugas melakukan komunikasi ke server
  2. User memasukkan nama, yang nantinya kita simpan dalam suatu variabel
  3. Ketika user selesai mengetik pesan, masukkan ke dalam database melalui ajax
  4. User, baik kita sendiri atau orang lain, setiap 1 detik akan mengecek ke server, apakah ada pesan baru, jika ada tampilkan.
Sekarang mari kita mulai membuat kode-kodehttp://www.blogger.com/blogger.g?blogID=7641794122890923968#editor/target=post;postID=2861260277256342287nya
Berikut adah struktur tabel drzchat di database :

1-- 
2-- Table structure for table `drzchat` 
3-- 
4
5CREATE TABLE `drzchat` ( 
6  `nomor` int(3) NOT NULL auto_increment, 
7  `nama` varchar(20) NOT NULL, 
8  `pesan` varchar(200) NOT NULL, 
9  `waktu` varchar(10) NOT NULL, 
10  PRIMARY KEY  (`nomor`) 
11) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 


Pertama-tama mari kita buat halaman untuk chat di browser. drzchat.html


1<html> 
2<head> 
3<title> 
4DRZ Chat 1.0 
5</title> 
6<script> 
7var ajaxku = buatAjax(); 
8var tnama = 0; 
9var pesanakhir = 0; 
10var timer; 
11function taruhNama(){ 
12    if(tnama==0){ 
13        document.getElementById("nama").disabled = "true"
14        tnama = 1; 
15    }else
16        document.getElementById("nama").disabled = ""
17        tnama = 0; 
18    } 
19    ambilPesan(); 
20
21function buatAjax(){ 
22    if(window.XMLHttpRequest){ 
23        return new XMLHttpRequest(); 
24    }else if(window.ActiveXObject){ 
25        return new ActiveXObject("Microsoft.XMLHTTP"); 
26    } 
27
28
29function ambilPesan(){ 
30    namaku = document.getElementById("nama").value 
31    if(ajaxku.readyState == 4 || ajaxku.readyState == 0){ 
32        ajaxku.open("GET","ambilchat.php?akhir="+pesanakhir+"&nama="+namaku+"&sid="+Math.random(),true); 
33        ajaxku.onreadystatechange = aturAmbilPesan; 
34        ajaxku.send(null); 
35    } 
36
37
38function aturAmbilPesan(){ 
39    if(ajaxku.readyState == 4){ 
40        var chat_div = document.getElementById("div_chat"); 
41        var data = eval("("+ajaxku.responseText+")"); 
42        for(i=0;i<data.messages.pesan.length;i++){ 
43            chat_div.innerHTML += "<font color=red>"+data.messages.pesan[i].nama+"</font> "
44            chat_div.innerHTML += "<font size=1>("+data.messages.pesan[i].waktu+")</font> "
45            chat_div.innerHTML += " : "+data.messages.pesan[i].teks+"<br>"
46            chat_div.scrollTop = chat_div.scrollHeight; 
47            pesanakhir = data.messages.pesan[i].id; 
48        } 
49    } 
50    timer = setTimeout("ambilPesan()",1000); 
51
52
53function kirimPesan(){ 
54    pesannya = document.getElementById("pesan").value 
55    namaku = document.getElementById("nama").value 
56    if(pesannya != "" && document.getElementById("nama").value !=""){ 
57        ajaxku.open("GET","ambilchat.php?akhir="+pesanakhir+"&nama="+namaku+"&pesan="+pesannya+"&sid="+Math.random(),true); 
58        ajaxku.onreadystatechange = aturAmbilPesan; 
59        ajaxku.send(null); 
60        document.getElementById("pesan").value = ""
61    }else
62        alert("Nama atau pesan masih kosong"); 
63    } 
64
65
66function aturKirimPesan(){ 
67    clearInterval(timer); 
68    ambilPesan(); 
69
70function blockSubmit() { 
71    kirimPesan(); 
72    return false; 
73
74</script> 
75</head> 
76<body> 
77Nama : <input type=text name=nama id=nama> 
78<input type=button value=login id=tmbl_login onclick=taruhNama()><p> 
79<div id="div_chat" style="height: 300px; width: 500px; overflow: auto; background-color: lightyellow; border: 1px solid #555555;"
80
81</div> 
82<form onSubmit="return blockSubmit();"
83Pesan : <input type=text name=pesan id=pesan size=50> 
84<input type=button value="kirim" onclick="kirimPesan()"
85</form> 
86</body> 
87</html> 


Pada kode drzchat.html di atas, setelah user mengisi nama, lalu klik tombol login, maka kita menjalankan fungsi taruhNama(), yang berguna untuk mengunci nama yang sudah diketik sebagai user name di chatting. Setelah itu kita manjalankan fungsi ambilPesan(), yang berfungsi melakukan request ke server apakah ada pesan yang terbaru dari database. Jika ada pesan terbaru maka kita ambil dan taruh di browser dengan menggunakan fungsi aturAmbilPesan().
Apabila kita sudah mengetik pesan, javascript akan menjalankan fungsi kirimPesan(). Untuk mengerti apa itu readyState, onreadystatechange silahkan download tutorial pengenalan ajax di sini.
Pada kode di atas objek ajax melakukan request atau komunikasi dengan file php server, yaitu file ambilchat.php. Berikut kodenya :


1<?php 
2mysql_connect("localhost","root",""); 
3mysql_select_db("test"); 
4
5$nama = $_GET['nama']; 
6$pesan = $_GET['pesan']; 
7$waktu = date("H:i"); 
8$akhir = $_GET['akhir']; 
9
10$json = '{"messages": {'
11if($akhir==0){ 
12    $nomor = mysql_query("select nomor from drzchat order by nomor desc limit 1"); 
13    $n = mysql_fetch_array($nomor); 
14    $no = $n['nomor'] + 1; 
15    $json .= '"pesan":[ {'
16    $json .= '"id":"'.$no.'", 
17              "nama":"Admin"
18              "teks":"Selamat datang di chatting room"
19              "waktu":"'.$waktu.'" 
20              }]'; 
21    $masuk = mysql_query("insert into drzchat values(null,'Admin','$nama bergabung dalam chat','$waktu')"); 
22}else
23    if($pesan){ 
24        $masuk = mysql_query("insert into drzchat values(null,'$nama','$pesan','$waktu')"); 
25
26    } 
27    $query = mysql_query("select * from drzchat where nomor > $akhir"); 
28    $json .= '"pesan":[ '
29    while($x = mysql_fetch_array($query)){ 
30        $json .= '{'
31        $json .= '"id":"'.$x['nomor'].'", 
32                  "nama":"'.htmlspecialchars($x['nama']).'"
33                  "teks":"'.htmlspecialchars($x['pesan']).'"
34                  "waktu":"'.$x['waktu'].'" 
35                  },'; 
36    } 
37    $json = substr($json,0,strlen($json)-1); 
38    $json .= ']'
39
40
41$json .= '}}'
42echo $json
43?> 


File ambilchat.php mempunya fungsi utama memasukkan pesan ke database dan sekaligus mengecek apakah ada pesan terbaru dengan cara melakukan query "select * from drzchat where nomor > $akhir". Variabel $akhir kita dapat dari variabel yang dikirim oleh objek ajax, yang sebenarnya juga berasal field nomor pada tabel drzchat.
Format data yang dikirim oleh server menggunakan format JSON, silahkan download dan baca tutorial JSON di sini.
Download Source Code

Friday, March 16, 2012

Autentikasi dengan Session pada PHP

  Autentikasi dengan Session

  1. Pendahuluan
  2. Cara Membuat atau Register Session
  3. Cara Mengecek Session Telah Teregister
  4. Cara Un-Register Session (Log Out)
  5. Contoh Sederhana Session

1. Pendahuluan

Autentikasi adalah suatu mekanisme untuk mengatur hak akses suatu halaman web, biasanya diawali dengan adanya proses login. Dimana user diminta menginput user id dan password. Jika berhasil login anda berhak masuk ke suatu halaman, jika tidak..anda tidak akan bisa masuk ke halaman tersebut
Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang jika anda menutup browser.

2. Cara Membuat atau Register Session

Cara membuat session adalah sebagai berikut :
  1. Deklarasi awal kalau kita menggunakan session, yaitu menggunakan fungsi session_start()
  2. Set suatu nilai ke variabel $_SESSION
Contoh :
halaman1.php
<?php
session_start();

$_SESSION['namauser'] = "Desrizal";

echo $_SESSION['namauser'];

echo "<a href='halaman2.php'>Ke Halaman 2</a>";
?> 
 
Catatan :
Kode session_start() harus diletakkan sebelum ada output apapun walaupun hanya spasi, jadi sebaikanya selalu letakkan di bagian paling atas

3. Cara Mengecek Session Telah Teregister

Setelah kita me-registerkan variabel $_SESSION, maka untuk mengecek apakah session telah diregister adalah dengan menggunakan fungsi isset().
Pada contoh di atas (halaman1.php), setelah kita me-register $_SESSION['namauser'], kita akan ke halaman2.php
Di halaman2.php kita akan cek apakah variabel session telah di register, jika belum kita stop membuka isi halaman2.php
halaman2.php
<?php
session_start();

if(!isset($_SESSION['namauser'])){
    //jika session belum di set/register
    die("Anda belum register kan session");
}

//jika sudah register kita lanjut
?>
<h2>Selamat Datang</h2>

<?php
echo $_SESSION['namauser'];
?>
Untuk melihat efeknya antara variabel $_SESSION sudah diregister atau belum, coba anda tutup browser, lalu buka lagi browsernya, langsung buka halaman halaman2.php. Tanpa membuka halaman1.php terlebih dahulu

4. Cara Un-Register Session (Log Out)

Setelah kita belajar me-register session, maka cara un-register session adalah dengan menggunakan fungsi unset()
logout.php
<?php
session_start();

unset($_SESSION['namauser']);
?> 
 

5. Contoh Sederhana Session

Berikut adalah contoh untuk membuat login dan autentikasi dengan session
Silahkan lihat di : http://blog.codingwear.com/baca.php?no=19

Selamat mencoba
 

Tuesday, March 13, 2012

Pengertian Ajax dan Contoh Penggunaan Ajax

Apakah Ajax itu ? para Web Designer dan Programmer tentu sudah sering mendengar kata-kata tersebut dan sudah menjadi teknologi wajib yang harus digunakan dalam membuat sebuah website moderen dan dinamis.

Mengapa Harus Ajax

Pada website tradisional biasa jika kita mengklik suatu tombol/link tertentu maka browser akan melakukan refresh dimana document HTML akan di baca dari awal dan layar browser akan menjadi blank sesaat karena pada saat itu browser sedang meminta/merequest data dari web server dan hal itulah yang membuat aplikasi website menjadi kurang interaktif dan responsif. Ajax digunakan untuk memecahkan masalah tersebut, Ajax membuat aplikasi website menjadi lebih interaktif dan responsif serta memiliki kecepatan dalam memproses request ke server. Saat ini Ajax sudah menjadi teknologi yang wajib diterapkan bagi website-website moderen (Web 2.0).

Asal Mula Bahasa Pemrograman Ajax

AJAX memiliki kepanjangan Asynchronous Javascript And XML merupakan suatu teknik baru dalam dunia web tapi bukan merupakan bahasa pemrograman yang baru. Dikembangkan sekitar 2-3 tahun yang lalu, AJAX mulai dilirik oleh para web desainer dan programmer. Dengan adanya AJAX, akses data ke server yang dikirim melalui client via web dapat lebih cepat daripada mekanisme biasa. Hal ini dikarenakan AJAX tidak perlu melakukan proses loading page (refresh page) atau pindah ke page yang lain. AJAX dapat diintegrasikan dengan server side programming seperti PHP, ASP, JSP dll. Perhatikan mekanisme proses AJAX menggunakan PHP berikut ini
Gambar Proses Ajax
Pada mekanisme di atas, proses berawal dari web client. Web client merequest sebuah halaman PHP ke server melalui Javascript. Selanjutnya server akan merespon dan menjalankan script PHP. Script PHP akan menghasilkan respon dalam bentuk XML dan data XML tersebut akan dikirim kembali ke web client untuk diolah oleh Javascript. Hasil olahan javascript tersebut akhirnya akan ditampilkan di web client sebagai output tanpa harus merefresh halaman web. Bandingkan dengan mekanisme biasa dalam menjalankan PHP seperti yang ditunjukkan pada gambar berikut
Gambar Proses Biasa
Pada mekanisme biasa, respon yang dihasilkan oleh server berupa HTML yang mengakibatkan halaman web akan merefresh tampilan. Dilihat dari sisi efisiensi, hal ini tentu kurang sekali. Sedangkan kekurangan AJAX dibandingkan mekanisme biasa adalah memiliki tingkat kesukaran pemrograman yang lebih tinggi, karena programmer harus menguasai 4 hal yaitu HTML-(XHTML), Javascript, XML dan juga server side programming seperti PHP dan lain sebagainya


Aplikasi Website dengan Ajax
Pada aplikasi Javascript konvensional jika kita menginginkan data dari server kita menggunakan Form dan memanggilnya dengan method GET atau POST. Sehingga pengunjung perlu mengklik tombol dan kemudian halaman akan kerefresh untuk menampilkan hasil dari request tersebut. Nah, kalau dengan Ajax, Javascript berkomunikasi langsung keserver dengan sebuah fungsi yang disebut XMLHttpRequest.
dengan XMLHttpRequest suatu halaman web dapat direquest dari server dan diterima hasilnya tanpa perlu terjadi refresh pada halaman web tersebut. XMLHttpRequest telah disupport oleh IE 5 keatas, Safari 1.2 keatas, Mozilla Firefox keatas dan Opera 8 keatas. Ajax merupakan penggabungan teknologi-teknologi Javascript, HTML/XHTML, XML, CSS dan Server Side Client. Jadi jika anda belum menguasai salah satu dari teknologi tersebut disarankan untuk anda mempelajari dahulu sebelum melanjutkan pemahaman tentang AJAX.

Contoh aplikasi Ajax

Pada artikel ini saya akan coba memberikan contoh ajax yang paling sederhana karena aplikasi-aplikasi
 website yang besar dimulai dari sesuatau yang sederhana. Untuk memulainnya silahkan anda buat sebuah File HTML dan tuliskan kode dibawah ini lalu simpan dengan nama index.html
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
<head>
<title>Contoh AJAX title>
<script language="javascript">
function GetXmlHttpObject(){
    var xmlHttp=null;
    try {
    //Untuk Browser Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
    //Untuk Browser Internet Explorer
        try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}
 
function getpages(url,centercol) {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp) {
        var obj = document.getElementById(centercol);
        xmlHttp.open("GET", url);
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 1) {
                obj.innerHTML = '<img alt=\"Halaman Sedang Dimuat \" src=\"images/wait.gif\" alt=\"loading\" / >';
            }
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                obj.innerHTML = xmlHttp.responseText;
            }
        }
        xmlHttp.send(null);
    }
}
</script>
</head>
<body>
 
<h1>Request File Dari HTML </h1>
<form>
    <input value="Request File  " onclick="getpages('request.html','centercol')" type="button">
</form>
<div id="centercol">
  File request.html akan ditampilkan disini
</div>
</body>
</html>
Sekarang buat file HTML dengan nama request.html yang disimpan dengan folder yang sama dengan File diatas kemudian isilah dengan text berikut ini:
?
1
Text ini ditampilkan dengan metode proses request <strong>Ajax</strong>
Berikut saya terangkan
Awalnya kita perlu membuat object XMLHttpRequest, objek ini wajib ada dalam website yang menggunakan Ajax. Untuk memanggilnya kita perlu menggunakan fungsi berikut ini:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function GetXmlHttpObject(){
    var xmlHttp=null;
    try {
    //Untuk Browser Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
    //Untuk Browser Internet Explorer
        try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}
Pertama-tama kita set xmlHttp=null tidak aktif, kemudian baru kita aktifkan lagi dengan membuat objek yang baru xmlHttp = new XMLHttpRequest(); Khusus untuk Internet Explorer, karena menggunakan ActiveX untuk membuat XMLHttpRequest kita harus membuat kode xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
Setelah kita membuat objek XMLHttpRequest sekarang kita membuat fungsi untuk mengambil file dan menampilkannya. Disini kita membuat fungsi function getpages(url,centercol), yang didalamnya terdapat xmlHttp.open ("GET", url); yang berarti kita mengambil url dengan method get. dengan menggunakan method get maka kita harus mengirimkan sesuatu keserver, tapi karena kita tidak mengirim apa-apa maka kita kirimkan saja nilai kosong dengan kode: xmlHttp.send(null);
xmlHttp.onreadystatechange = function() merupakan sebuah fungsi dimana nanti kita akan memperoleh status dari request file yang telah kita lakukan. xmlHttp.readyState memiliki 4 status yaitu:
  • 0 Request kita belum dibuat
  • 1 Request kita sedang dalam proses (biasanya kita menggunakan gambar loading dengan ini)
  • 2 Request kita sudah dikirim tapi hasil belum diterima
  • 3 Request kita sedang diproses dikomputer klien
  • 4 Request sudah sukses dikirim dan kita sudah sukses menerimanya
xmlHttp.status merupakan status http. Jika statusnya 200 berarti file html nya ada dan siap ditampilkan. Sehingga kita perlu mengecek kedua status tersebut dengan kode if (xmlHttp.readyState == 4 && xmlHttp.status == 200)

Jika kedua statusnya oke, maka kita perlu menampilkannya dengan perintah obj.innerHTML = xmlHttp.responseText Dimana ini berarti kita menampilkannya di obj, sementara variabel obj telah kita isi dengan centercol, ini kode ketika kita mengisi obj dengan centercol, var obj = document.getElementById(centercol).

Terakhir Kita memanggil fungsi getpages pada tombol serta mengirim url yang akan ditampilkan. Inilah kode yang digunakan untuk memanggil fungsi getpages: <input type="button" value="Tampilkan Request" onclick="getpages('request.html' ,'centercol')">.

Selamat mencoba

 
Pratama Master powered by blogger.com
Design by Simple Diamond and Pratama Master