Minggu, 14 Desember 2008

Menangkap Variabel Post


Halo semua, jumpa lagi dengan Phii. Kali ini, Phii akan membahas
bagiamana menangkap variabel post pada form buku tamu sederhana agar
ketika pengunjung memasukkan data dan ada beberapa data yang tidak
valid, pengunjung web kita tidak perlu mengisi ulang dari awal lagi.
Bingung? Kira2 begini, misal pengunjung web kita sudah menulis panjang
lebar untuk data pesan, tapi kelupaan nulis data email, padahal data
email wajib ditulis. Nah, ketika dikirim, proses akan dibatalkan karana
ada data yang tidak lengkap dan akan menampilkan kembali form buku tamu
yang kosong. Kasihan kan kalo harus nulis lagi, bisa jadi malah
pengunjung web kita males n ga jadi nulis buku tamu. sudah cukup jelas?
Oke...langsung kita bahas. Mari kita siapkan file2-nya :

database           
create database db_gb ;
use db_gb;
create
table guestbook (id int unsigned not null primary key auto_increment,
nama varchar(50) not null, email varchar(100) not null, pesan text not
null);


file koneksi.php
<?php
$host="localhost"; $uname="root"; $pass=""; $db="db_gb";
$koneksi=mysql_connect($host,$uname,$pass);
mysql_select_db($db,$koneksi);
?>

file lihatgb.php
<?php
$queryGb = mysql_query("select * from guestbook");
$jmlGb = mysql_num_rows($queryGb);

if($jmlGb==0)
{
        echo"Data buku tamu masih kosong";
}
else
{
        $queryTampil=mysql_query("select * from guestbook order by id desc");
        echo"<p>DATA BUKU TAMU<p>";
        while($dataGb=mysql_fetch_row($queryTampil))
        {
                echo"<b>$dataGb[1]</b><br>";
                echo"".wordwrap($dataGb[3],85,"<br>",1)." ";
                echo"<hr width=50% align=left>";
        }
}
?>

file gb.php
<?php
include'koneksi.php';

if(isset($_POST['kirim']) && ($_POST['kirim']=='Kirim'))
{
        $nama=trim(strip_tags($_POST['nama']));
        $email=trim(strip_tags($_POST['email']));
        $pesan=trim(strip_tags($_POST['pesan']));

        //validasi form
        if($nama=='')
                $error1= "<font color=red>&nbsp;&nbsp;&laquo; Nama belum diisi</font><br>";
        if($email=='')
                $error2= "<font color=red>&nbsp;&nbsp;&laquo; Email belum diisi</font><br>";
        if($pesan=='')
                $error3= "<font color=red>&nbsp;&nbsp;&laquo; Pesan belum diisi</font><br>";
        if($email!='')
        {
                $polaemail = "^.+@.+\..+$"; //nyontek tutorial validasi email yg ditulis b_scorpio :)
                $cek=eregi($polaemail,$email);
                if(!$cek)
                {
                        $error4="<font color=red>&nbsp;&nbsp;&laquo; Pola email salah</font>";
                }
        }
       
        //jika semua data valid
        if(($nama!='') && ($email!='') && $cek && ($pesan!=''))
        {
                //simpan data buku tamu
                $queryAddGb=mysql_query("insert into guestbook
                values(NULL,'$nama','$email','$pesan')");

                if($queryAddGb)   //jika query simpan buku tamu berhasil
                {
                        //tampilkan pesan berhasil
                        echo"<font color=red><b>Guestbook berhasil disimpan</b></font>";
                        echo"<meta http-equiv=\"refresh\" content=\"2; url=./gb.php\">";
                        exit;
                }
                else      //jika query gagal
                {
                        //tampilkan pesan gagal
                        echo"<font color=red><b>Data gagal disimpan</b></font>";
                        echo"<meta http-equiv=\"refresh\" content=\"10; url=./gb.html\">";
                        exit;
                }
        }
        if(isset($error1) || isset($error2) || isset($error3) || isset($error4))
        {
                //tangkap variabel post untuk menampilkan kembali data yang sudah diisi pada form
                $ex_nama=trim(strip_tags($_POST['nama']));
                $ex_email=trim(strip_tags($_POST['email']));
                $ex_pesan=trim(strip_tags($_POST['pesan']));
        }
}

include'lihatgb.php';

//semua value variabel diset kosong jika belum diisi
if(empty($ex_nama))
{
        $ex_nama='';
}
if(empty($ex_email))
{
        $ex_email='';
}
if(empty($ex_pesan))
{
        $ex_pesan='';
}
?>
<p><br><br>FORM BUKU TAMU
<form method="post" action="">
        Nama *<br><input type="text" name="nama" size="34" value="<?php echo $ex_nama;?>"><?php
        if(isset($error1)) //jika data nama kosong
        {
                echo $error1;    //tampilkan pesan di samping textbox nama
        }
        ?><br>
        Email *<br><input type="text" name="email" size="34" value="<?php echo $ex_email;?>"><?php
        if(isset($error2)) //jika data email kosong
        {
                echo $error2; //tampilkan pesan d isamping textbox email
        }
        if(isset($error4))   //jika data email tidak sesuai dengan pola email
        {
                echo $error4;  //tampilkan pesan di samping textbox email
        }
        ?><br>
        Pesan *<br><textarea name="pesan" rows="8" cols="40"><?php echo $ex_pesan;?></textarea><?php
        if(isset($error3))   //jika data pesan kosong
        {
                echo $error3;   //tampilkan pesan di samping textarea pesan
        }
        ?>
        <br>*) Wajib diisi <br>
        <input type="reset" value="Reset" name="kosongkan">
        <input type="submit" value="Kirim" name="kirim">
</form>

Mari dicoba  :

Jalankan file gb.php
Coba isi beberapa data, misal :
data nama : Bolang  
data 
pesan: Aku senang sekali mengunjungi ilmuwebsite.com, karena disini aku
bisa belajar web         programming. Untuk para staf, cayoo...jangan
pernah bosan berbagi ilmu, agar semakin banyak anak2 bangsa ini yang
pinter web programming. Selalu ditunggu artikel2 barunya, n....tetap
semangatttttt!!!

Lalu klik Kirim
Apa
yang terjadi? Si Bolang ini lupa ga masukin data email. Alhasil proses
simpan buku tamu ditolak karana data email wajib diisi.
Disinilah topik bahasan artikel ini berguna.
Yuppp....karena variabel yang sudah diisi telah ditangkap pak polisi,
eh...salah, maksudnya ditangkap oleh variabel ex_nama dan ex_pesan,
maka ketika form buku tamu ditampilkan kembali, data2 yang sudah diisi
tidak kosong tapi sudah terisi oleh data yg sebelumnya sudah
dimasukkan. Jadi Si Bolang tinggal mengisi data email saja.


Coba masukkan data email : bolang@yahoo, lalu klik Kirim
Aduh..aduhhhh...Si
Bolang ini orangnya kurang teliti sama kaya Phii. Jadi ketika disimpan,
lagi2 proses ditolak, karena pola email tidak sesuai dengan pola yang
sudah ditentukan.
Kali ini variabel yang ditangkap tidak hanya nama
dan pesan, tapi juga email. Form yang ditampilkan akan menampilkan
data2 yang sudah dimasukkan sebelumnya.


Kali
ini Si Bolang tidak akan melakukan kesalahan input lagi. Si Bolang
menambahkan .com pada data email, sehingga data email menjadi
bolang@yahoo.com. Lalu klik Kirim.
Horeeee....Bolang sukses mengisi form buku tamu.


Script php-nya silahkan donlot disini
Wuah...panjang
sekalee artikelnya, udah ah...sampai di sini dulu artikel dari Phii.
Jika ada teman2 yang menemukan cara lain silahkan menghubungi phii di
flore_ephi@yahoo.co.id atau share di ilmuwebsite.

*) Special thanks 2 --> Aeterna_16
Phii
dapet trik ini dari temen Phii yang nicknya aeterna. Makasih udah boleh
share ilmunya di ilmuwebsite melalui artikel yang Phii tulis. Salam bwt
rekan2 team PKTI, crazy6, aeterna_16, n angel. Woiii...cari proyek lagi
yukkkk....udah skarat  nih..hahahah...  

*) Salam bwt smua staff --> Anggi, Al-k, Safril, Fadli, Ivan, Ronny, Dr.emi n smua pengunjung setia ilmuwebsite


Sumber dari situs Ilmu Website dalam kategori php kuliah dengan judul Menangkap Variabel Post

STR REPLACE

str_replace digunakan untuk mengganti karakter
Bentuk asli:
str_replace("asli", "baru", $str);

Contoh:
$str = "anggi jatras mara aaa";
$ganti = str_replace(" ", "_", $str);
echo $ganti;

Hasil yg keluar:
==> anggi_jatras_mara_aaa

Ket: Sesuai contoh saya mengganti semua spasi menjadi underscore


Sumber dari situs Ilmu Website dalam kategori php reference dengan judul str_replace

CMS - XMB Forum

Jika berbicara tentang Forum komunitas atau biasa disebut Bulletin Board, ada satu CMS yang layak dicoba. Nama XMB FORUM.
Tampilan desain forum ini cukup bagus dan elegan. Hampir sama seperti
forum-forum yang lain pada umumnya,Cara menginstall forum ini pun cukup
mudah.
  XMB Forum ini dapat di-unduh di www.xmbforum.com

Salam,
Ivan yudianto
Email 1: ivan@ilmuwebsite.com
Email 2 : ivan_wen_piao@yahoo.co.id
Web : www.ivan.ilmuwebsite.com


Sumber dari situs Ilmu Website dalam kategori review cms dengan judul CMS - XMB Forum

Kamis, 11 Desember 2008

Redirect Halaman Kompleks


Lagi-lagi penulis coba untuk membayar hutang. :D. Hutang mengenai
tutorial yang membahas redirect halaman secara kompleks. Sebelum menuju
inti pembahasan, penulis akan beri penjelasan apa dan bagaimana contoh
kasus dari redirect halaman secara kompleks ini.
Mungkin ada
sebagian orang yang pernah mencoba searching di google mengenai artikel
yang dia cari, namun ketika mendapatkan artikel tersebut, web tersebut
hanya membolehkan user yang sudah teregistrasi saja yang dapat
mengakses artikel tersebut. Maka, langkah selanjutnya yang dilakukan
oleh user tersebut adalah meregistrasikan dirinya untuk menjadi member
pada website tersebut, pada form yang letak halamannya berbeda dengan
artikel yang dicari. Namun setelah proses registrasi selesai, dan
proses login berhasil, user secara otomatis di redirect ke halaman yang
dia tuju sebelumnya. Ini adalah contoh kecil dari redirect kompleks.
Contoh lainnya, ketika user yang akan mencoba untuk mendownload sebuah
file pada halaman tertentu di suatu website, user tersebut diharuskan
untuk login terlebih dahulu, tapi setelah login user langsung
diredirect secara otomatis menuju halaman download. :D. Pada tutorial
kali ini, penulis akan coba jawab itu berbagai persoalan tersebut. Mari
.. mari ... :D

Ya, persiapkan terlebih dulu databasenya :

create database simple_cms ;
use simple_cms ;
create table user( id int(5) PRIMARY KEY auto_increment, username varchar(20), password varchar(50));
create table article (id int(5) PRIMARY KEY auto_increment, penulis varchar(20), judul varchar(200), isi text);

insert into user values ('','admin',md5('admin'));
insert
into article values('','Loka Dwiartara','Kegantengan
Abadi','Kegantengan abadi terpancar dari kekerenan sejati. Aura
kegantengan selalu terpancar dari kerennya seseorang. :D. Kadang banyak
yang berpikir keindahan secara fisik itu melebihi dari segalanya. Kita
tahu bahwa b_scorpio itu tidak ganteng, tapi setidaknya tolong hargai
dia :D'),  ( '','Loka Dwiartara','PHP is powerfull easy
language ... ', 'Kekerenan php dalam menangani pengembangan sistem
informasi berbasis website patut di acungi 4 jempol kaki dan tangan,
kehebatannya melebihi b_scorpio yang tidak pandai menggaet i#a, wanita
yang dia suka. ;D~~~, peace ... damai ... ') ;


Selanjutnya, config.php :
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "simple_cms" ;

$connect = mysql_connect($host, $username, $password);
mysql_select_db( $database , $connect) or die ("MySQL is error!!");
?>

Kemudian, halaman login.php :

<html>
<head><title>Login Page ...!</title></head>
<body>
<form action=cek.php method=POST>
<table
border=0
bcolor=#DFDFDF><tr><td>username</td><td><input
type=text name=username></td></tr>

<tr><td>password</td><td><input type=password name=password></td></tr>
<tr><td></td><td><input type=submit name=submit value=submit></td></tr>
</table>
</form>
</body>
</html>

Selanjutnya, file cek.php, disinilah redirect kompleks halaman berada :

<?php
session_start();
require_once "config.php";

if (ISSET($_POST['username']) && ISSET($_POST['password']) )
{
    $username = $_POST['username'];
    $password = md5($_POST['password']);
    $session_halaman = $_SESSION['halaman'];

    $cekuser = "select username, password from user where username = '$username' and password = '$password'";
    $query_cekuser = mysql_query($cekuser);
    $exist = mysql_num_rows($query_cekuser);

    if ($exist >= 1)
    {
        $_SESSION['user'] = session_id();
        header("location: index.php?view=page&id=$session_halaman");
    }
    
    else
    {
        header("location: login.php");
    }

}

?>

Dan halaman index.php, untuk menampilkan artikelnya :

<?php
session_start();
require_once "config.php";
if (!ISSET($_REQUEST['id']) )
{
    $list_article = "select * from article";
    $query_list_article = mysql_query($list_article);
    echo "<h3>Article Today</h3>";    
    if (ISSET($_SESSION['user']))
    {
  
     echo "</p><b>Welcome back User</b>. Do you want
<a href=logout.php>logout</a> ? :D~~ </p>";

    }
    
    
    while ($showlist = mysql_fetch_array($query_list_article))
    {    
        $id = $showlist['id'];
        $penulis = $showlist['penulis'];
        $judul = $showlist['judul'];
        $isi = $showlist['isi'];
        $panjangartikel = strlen($isi);
        $isi_dipotong = substr($isi, 0, 60);
        $isi_fix = substr($isi, 0, strrpos($isi_dipotong, " "));
        $isi_fix .= "...";
        
        echo "<b>$judul</b><br>
              Oleh : $penulis<br>
              <p>$isi_fix <a href=index.php?view=page&id=$id>selengkapnya</a></p>
              <hr width=45% align=left>";
              
    }
}

else if (ISSET($_REQUEST['view']) && ISSET($_REQUEST['id']) )
{

    $id = $_REQUEST['id'] ;
    if (!ISSET($_SESSION['user']))
        {
        $_SESSION['halaman'] = $id ;
        echo "Login dulu dong <a href=login.php>di sini</a>";
        }
        
    else
        {
        $list_article = "select * from article where id = '$id' ";
        $query_list_article = mysql_query($list_article);
    
        while ($showlist = mysql_fetch_array($query_list_article))
            {    
            $id = $showlist['id'];
            $penulis = $showlist['penulis'];
            $judul = $showlist['judul'];
            $isi = $showlist['isi'];
        
            echo "<h3>Article Today</h3>";
            echo "<b>$judul</b><br>
                    Oleh : $penulis<br>
                    <p>$isi</p>
                    <hr width=100% align=left>";
              
            }
            
            echo "<a href=index.php?view=page>Kembali...</a>";
        }
    
}

?>


Terakhir adalah, file logout.php :

<?php
session_start();
unset($_SESSION['user']);
session_destroy();
header("location: index.php");
?>

Hmmm..
panjang juga scriptnya. :D~ Penulis coba jelaskan beberapa baris yang
penting saja. Lihat ke halaman index.php, di situ terdapat baris
seperti ini  :

....
else if (ISSET($_REQUEST['view']) && ISSET($_REQUEST['id']) )
{

    $id = $_REQUEST['id'] ;
    if (!ISSET($_SESSION['user']))
        {
        $_SESSION['halaman'] = $id ;
        echo "Login dulu dong <a href=login.php>di sini</a>";
        }
        

...

else if (ISSET($_REQUEST['view']) && ISSET($_REQUEST['id']) )
Ini berarti, jika user mengklik salah satu artikel di halaman index,

if (!ISSET($_SESSION['user']))
dan jika user belum login,

$_SESSION['halaman'] = $id ;
maka, rekam halaman yang akan dibuka, simpan halaman tersebut ke dalam variable session.

echo "Login dulu dong <a href=login.php>di sini</a>";
Persilahkan user untuk login dulu.

Nah selanjutnya, jika user telah login maka artikel langsung di perlihatkan seluruhnya, seperti pada baris ini

....
else
        {
        $list_article = "select * from article where id = '$id' ";
        $query_list_article = mysql_query($list_article);
    
        while ($showlist = mysql_fetch_array($query_list_article))
            {    
            $id = $showlist['id'];
            $penulis = $showlist['penulis'];
            $judul = $showlist['judul'];
            $isi = $showlist['isi'];
        
            echo "<h3>Article Today</h3>";
            echo "<b>$judul</b><br>
                    Oleh : $penulis<br>
                    <p>$isi</p>
                    <hr width=100% align=left>";

....

Kemudian untuk script cek.php

if (ISSET($_POST['username']) && ISSET($_POST['password']) )
Jika user telah mengisi password dan username,

....

$cekuser = "select username, password from user where username = '$username' and password = '$password'";
maka buat sebuah query yang akan menyeleksi apakah username dan passwordnya ada.

...

$query_cekuser = mysql_query($cekuser);
Jalankan querynya ...

$exist = mysql_num_rows($query_cekuser);
Apakah username dan password yang dimasukkan tersebut ada dalam database?

if ($exist >= 1)
{
Jika ada,

$_SESSION['user'] = session_id();
maka buat session baru untuk user

header("location: index.php?view=page&id=$session_halaman");
Redirectkan
si user ke halaman yang dia tuju sebelumnya ... Ya, disinilah letak
dari redirect kompleksnya. :D. Cukup manfaatkan saja session yang ada
untuk meredirect user ke halaman yang dituju.

}

else
{
header("location: login.php");
jika username dan password salah, persilahkan user untuk login ulang.

}

}
Untuk screenshoot demonya seperti ini :


Ini adalah halaman pertama kali


Ketika salah satu link akan diklik, maka user diperintahkan untuk login terlebih dahulu


Setelah login berhasil maka user secara otomatis langsung di redirect ke halaman tujuan yang awal.


Yup,
penulis kira sudah cukup jelas untuk redirect kompleks. Jika ada yang
ditanyakan silahkan kirim email ke alkemail@gmail.com. Selamat mencoba.


Script tersebut dapat di download di sini
http://networkandgame.890m.com/ilmuwebsite/article/redir-complex-by-alk.zip

Greetz
: b_scorpio, abuzahra, peterpanz, kandar, phii_, syahrilrohman, ivan,
dr.emi, safril, najwa. Special for jojo. :). Hi, Jo! Have a nice day.


Sumber dari situs Ilmu Website dalam kategori php kuliah dengan judul Redirect Halaman Kompleks

jQuery Ajax Display for Loading Content

What is jQuery ?
Apa sih jQuery itu
?

Image


jQuery
merupakan sebuahlibrary javascript yg
saat pertama kali muncul langsung berimbas padaberalihnya para
developper untuk segera memanfaatkan nya sebagailibrary yang powerfull
untuk menyaingi ajax. Awal muncul nya sempatmembuat ajax hanya mendapat
hitungan jari kelingking dari paradevelopper. Karena seperti motto
jQuery sendiri adalah "Write Less, Do More". Wah pantes aja posisi ajax
langsung ketendang.

Berikutadalah tutorial sederhana
cara mengimplementasikan jQuery sebagailibrary yang powerfull, dapat
menciptakan interaktif user pada halamanwebsite lu :))


Sebelumnya download dlu library
nya:

Download
Page


jQuery 1.2.6 {The
Latest
Release}


jQuery Ajax Display for
Loading
Content


Siapkan
HTML
kosong
bwat halaman utama, pada header panggil dlu library jQuery
na:

Code:
<script
language="javascript"
src="jquery-1.2.6.min.js"></script>



untuk
interaktif
user na, gunakan Ajax jQuery Animation, atau dalam code na dinamakan
sebagai AJAX DISPLAY

Code:
<script
language="javascript">
   //show
animation
$(function(){
 
 $("#ajax_display").ajaxStart(function(){
   
 $(this).html(<div
style="position:absolute;"><imgsrc="ajax-loader-refresh.gif"/> <br><strong>Loading....</strong><br><br>Pleasebe
patien,
do
not close the window. <br>Gathering data
beingprogress ...</div>);
 
 });
 
 $("#ajax_display").ajaxSuccess(function(){
 
  
  
 $(this).html();

 
 });
 
 $("#ajax_display").ajaxError(function(url){
 
  
  
 alert(jqSajax is
error );
 
 });
});
</script>




Sedangkanuntuk
simulasi
load
external file na, gw pake script random padalibrary jQuery, script ini
gw temukan di salah satu forum luar, gw lupanama forum na, mudah2an
berguna bwat kalian:

Code:
<script
type="text/javascript">
function getRandom()
{
$("#random").hide("slow");
$("#random").load("sleep.php",
,
callback);
}
function
callback()
{
$("#random").show("slow");
setTimeout("getRandom();",
10000);
}
$(document).ready(getRandom);
</script>
<div
id="random"></div>



"sleep.php"adalah
file
external yang diload oleh javascript random, dengan timeout10000
(10 detik). Timeout berarti, setelah 10 detik halaman akan diload ulang
dari awal kembali (setelah 10 detik).

sleep.php
berisi script yg akan di load, lu bisa isi apa aja seperti contoh code
dibawah ini untuk simulasi gw kasiin
sleep(10)

Code:
<?
sleep(10);
echo
"<span style=font-weight:bold;font-color:green;> All Data
loaded successfully
!!</span>";
?>




Jadi
untuk
lengkapna, berikut code HTML na:

Code:
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type"
content="text/html;
charset=iso-8859-1"
/>
<title>jQuery Ajax
Display</title>
<script
language="javascript"
src="jquery-1.2.6.min.js"></script>
<script
language="javascript">
 
 //show
animation
$(function(){
 
 $("#ajax_display").ajaxStart(function(){
   $(this).html(<div
style="position:absolute;"><imgsrc="ajax-loader-refresh.gif"/> <br><strong>Loading....</strong><br><br>Pleasebe
patien, 
do
not close the window. <br>Gathering data
beingprogress ...</div>);
 
 });
 
 $("#ajax_display").ajaxSuccess(function(){
 
  
  
 $(this).html();

 
 });
 
 $("#ajax_display").ajaxError(function(url){
 
  
  
 alert(jqSajax is
error );
 
 });
});
</script>

<style
type="text/css">
<!--
body,td,th
{
 
 font-family:
Arial, Helvetica,
sans-serif;
   font-size:
11px;
   color:
#000000;
}
body {
 
 background-color: #FFFFFF;
 
 margin-left: 10px;
   margin-top:
10px;
   margin-right:
10px;
   margin-bottom:
10px;
}
a:link {
   color:
#0066FF;
}
a:visited {
 
 color: #0066FF;
}
a:hover
{
   color:
#009900;
}
a:active {
 
 color:
#0066FF;
}
-->
</style></head>

<body>
<div
id="ajax_display"></div>
<div
style="position:absolute;
top:100px;">
<script
type="text/javascript">
function
getRandom()
{
$("#random").hide("slow");
$("#random").load("sleep.php",
,
callback);
}
function
callback()
{
$("#random").show("slow");
setTimeout("getRandom();",
10000);
}
$(document).ready(getRandom);
</script>
<div
id="random"></div>
This
is
an
Implementation for jQuery Ajax Display,  while loading a progress from
an external source.<br />
developped by
<a href="http://dremi.info"
target="_blank">dr.emi</a></div>
</body>
</html>




woke,
siap
dicoba, klik disini bwat preview hasil
na:

Image

ni
bwat
download code na:


Image

 


Sumber dari situs Ilmu Website dalam kategori ajax dengan judul jQuery Ajax Display for Loading Content