Membuat System LOG dengan FLAT FILE

Posted by ilmu-web / Category:


Jika kita memiliki suatu website tentunya kita pasti ingin
tahu jejak dari pengunjung website kita.

Beberapa kegunaan dari system log diantaranya:
selain untuk mengetahui informasi visitor, log file juga
berguna untuk membantu analisis security

Oke saya akan langsung ke penjelasannya,
kali ini saya akan menjelaskan log file dengan system
script PHP:


Script System LOG dengan FLAT FILE:

/* ini utk melihat type browser
$agent = $_SERVER['HTTP_USER_AGENT'];

/* ini utk melihat script di eksekusi dari mana GET(URL)
$uri = $_SERVER['REQUEST_URI'];

/* ini utk melihat IP Pengunjung
$ip = $_SERVER['REMOTE_ADDR'];

/* ini utk melihat script di refer dari mana
$ref = $_SERVER['HTTP_REFERER'];

/* ini utk melihat Proxy pengunjung
$asli = $_SERVER['HTTP_X_FORWARDED_FOR'];

/* ini utk melihat koneksi pengunjung
$via = $_SERVER['HTTP_VIA'];

/* ini variabel tanggal
$dtime = date('r');

/* perhatian jika pengunjung pakai Proxy transparent
/* maka $_SERVER['HTTP_X_FORWARDED_FOR'] akan menampilkan IP Asli pengunjung
/* sebaliknya $_SERVER['REMOTE_ADDR'] akan menampilkan Proxy
/* Untuk Lebih jelas nya tentang macam2 Proxy saya akan jelaskan di tutorial yang lain

/* ini adalah deskripsi variabel entry_line:
$entry_line = "Waktu: $dtime | IP asli: $ip | Browser: $agent | URL: $uri | Referrer: $ref | Proxy: $asli | Koneksi: $via
"; /* <-- perhatian!! ini harus new line alias kamu enter sekali supaya hasilnya jadi new line

/* "fopen()" utk fungsi membuka file, "a" ini yg paling penting.!!,
/* ini berfungsi jika file "jejak.txt" tidak ada dalam server maka PHP akan menciptakannya
$fp = fopen("jejak.txt", "a");

/* "fputs()" fungsinya utk menulis log dlm file
fputs($fp, $entry_line);

/* "fclose()" fungsinya untuk menutup file
fclose($fp);

?>

Fungsi php System LOG dengan FLAT FILE ini, menurutku lumayan berguna
daripada ribet pakai koneksi MySql

Article Last Update on 23 Februari 2008

Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

Counter, Visitor | Hits, dengan MySql

Posted by ilmu-web / Category:



Kali ini saya mau menjelaskan tentang bagaimana cara membuat counter
sebuah website dengan memakai MySql database.

caranya:
Table database:

CREATE TABLE `counter` (
`count_id` varchar(225) NOT NULL default '',
`count` longtext NOT NULL,
`hits` longtext NOT NULL
) TYPE=MyISAM;

catatan:
sebagai permulaan
untuk "count_id" anda masukkan nilai 1
untuk "count" anda masukkan nilai 1
untuk "hits" anda masukkan nilai 1


Script Counter:

session_start();

/* ----- koneksi database mulai ------- */

$dbhost = 'localhost'; /* ----- host mu ------- */
$dbusername = 'anggi'; /* ----- user mu ------- */
$dbpasswd = 'passwordku'; /* ----- password mu ------- */
$database_name = 'counter'; /* ----- nama database mu ------- */

/* ----- koneksi db mulai, code di bawah ini jangan di rubah ------- */
$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd") or die ("Couldn't connect to server.");
$db = mysql_select_db("$database_name", $connection) or die("Couldn't select database.");

/* ----- koneksi database habis ------- */


/* ----- jika session "counted" belum terdaftar ------- */
if (!session_is_registered("counted")){

/* ----- maka Update cell "count" dengan menambah kan +1 ------- */
mysql_query("UPDATE counter SET count=(count + 1) WHERE count_id=1");

/* ----- daftarkan session "counted" ------- */
session_register("counted");
}
?>

Visitor:

/* ----- tampilkan nilai/value dari table "counter" kolom ke-2 yg berarti kolom "count" ------- */
$sql = mysql_query("SELECT * FROM counter LIMIT 1");
while($row = mysql_fetch_array($sql)){
echo $row[1];
}
?>

Hits:

/* ----- untuk hits, kita tidak perlu fungsi "IF" ------- */
/* ----- Update cell "hits" dengan menambah kan +1 ------- */
mysql_query("UPDATE counter SET hits=(hits + 1) WHERE count_id=1");

/* ----- tampilkan nilai/value dari table "counter" kolom ke-3 yg berarti kolom "hits" ------- */
/* ----- yang telah di update dari dari proses di atas ------- */
$sql = mysql_query("SELECT * FROM counter LIMIT 1");
while($row = mysql_fetch_array($sql)){
echo $row[2];
}
?>

Penggunaan image dalam website

Posted by ilmu-web / Category:



Image
Penggunaan image dalam website tidak dapat di hindari, baik itu hanya untuk menunjukkan sebuah gambar foto atau pun penggunaan image sebagai navigasi menu. Menempatkan image dalam website membutuhkan code html <img src="" alt="">, di dalam tag <img> kita dapat menambahkan beberapa atribut seperti "alt" atau "title", penggunaan "alt" sendiri berguna untuk menggantikan image dengan menampilkan text apabila fungsi show image dalam browser di non-aktivkan, sedangkan "title" berguna untuk menampilkan tulisan (semacam tulisan nasihat dalam kotak yang muncul), seperti gambar di bawah ini:


cpanel
Atribut "alt" menggantikan gambar yang tidak muncul dengan sebuah text, dan atribut "title" menampilkan tulisan semacam nasehat atau deskripsi singkat mengenai gambar tesebut dalam sebuah kotak yang muncul ketika pointer mouse kita arahkan diatas image tersebut.

Atribut "alt" dalam hubungannya dengan Google, sesuai pernyataan Matt Cutts

"Provides some useful tips on how to optimize the images you include on your site, and how simply providing useful, accurate information in your ALT attributes can make your photos and pictures more discoverable on the web."

Kita sebaiknya menyediakan deskripsi yang akurat dan berguna dalam atribut ALT, sehingga membuat photo atau image kita dapat dibaca dengan baik di internet. Menurut saya hal ini ada hubungannya dengan Google image search, dimana google akan menyediakan hasil pencarian image berdasarkan text yang ada di atribut ALT, sehingga penempatan keyword pada atribut ALT boleh - boleh saja tetapi sebaiknya di barengi dengan menuliskan nama image tersebut dengan benar. Contoh image A adalah gambar bunga matahari, maka sebaiknya atribut ALT di isi dengan "bunga matahari" <img src="bunga-matahari.jpg" alt="bunga matahari">.

Sesuai dengan pernyataan Matt Cutts mengenai penggunaan ALT dan TITLE

As the Googlebot does not see the images directly, we generally concentrate on the information provided in the "alt" attribute

Google lebih memilih untuk melihat image melaui "alt", daripada "title".


Flash
Penggunaaf flash dalam sebuah website sudah bukan hal yang baru lagi, saat ini sudah banyak sekali website - website yang menggunakan flash untuk memperindah tampilan website mereka, ada yang digunakan sebagai sebuah animasi, navigasi head dll....

Sebenarnya Googlebot sudah dapat masuk dan mengcrawl text yang ada di file flash .swf, seperti gambar search result website seo web directory di bawah ini :

Googlebot masuk ke file flash swf

Pernyataan Mark Berghausen mengenai file flash

All of this means that even if your Flash content is in our index, it might be missing some text, content, or links

Bahkan jika file flash anda sudah terindex Google, bukan berarti text yang ada dalam file flash tersebut ter index dengan benar 100%, beberapa content text dan link tidak dapat terindex karena Googlebot tidak punya mata untuk melihat secara sempurna dalam sebuah file flash.

Jadi penggunaan file flash seharusnya:

  1. Gunakan Flash jika anda memang membutuhkannya, bahkan Youtube, media yang banyak menggunakan flash, lebih memilih menggunakan HTMl untuk content dan navigasinya daripada flash.
  2. Jika anda menggunakan Flash sebagai navigasi, maka sebaiknya anda menambahkan link versi HTML nya pada footer halaman web anda atau membuat halaman sitemap HTML seperti sitemap1, sitemap2, sitemap3 , ini berguna untuk menyalurkan Googlebot ke halaman lain website anda.
Jadi kesimpulannya, sebaiknya kita mengetahui bagaimana peggunaan file flash atau image dengan baik dalam hubungannya dengan faktor onpage optimization website kita.
Sumber dari situs Ilmu Website dalam kategori search engine artikel dengan judul Bagaimana Seharusnya Penggunaan Image dan Flash

Membuat Security Code | Security Image | Anti Spam

Posted by ilmu-web / Category:



Hai... selamat siang semuanya,kali ini saya mau menjelaskan bagaimana cara membuat Security Code - Security Image - atau Captcha.

Apa itu Security Image/ Security Code?
Security image adalah suatu bentuk perlindungan terhadap suatu form dari serangan SPAM.

Sebagai contoh pernakah anda mengisi formulir pendaftaran untuk mendapatkan email account di yahoo??
Lihat bagian bawah diatas tombol submit, di situ ada security code yang muncul...dan anda harus mengisi security code tersebut

Cara Kerjanya?

Pertama:
Formulir akan menampilkan security code yang di generate oleh script PHP, apabila page tersebut di refresh maka security code akan di generate lagi sehingga berubah codenya hal ini sangat berguna sekali untuk menangkal serangan spam.

Kedua:
Setelah di submit, script php akan memvalidasi data anda dan mencocok kan security code yang telah anda masuk kan apabila security code tidak sama, maka proses akan di batalkan apabila security code sama, maka proses akan dilanjutkan.

Berikut file-file yang akan kita gunakan :

1. script form.htm
2. script action.php
3. script captchasecurityimages.php
4. file font

Penjelasan:

====================================================================
ingat ini hanya contoh, anda bisa mengembangkan sendiri script anda
====================================================================

1. script form.htm
-------


Pesan:



Security Code:



-------

2. script action.php
-------

session_start();

if( isset($_POST['submit'])) {
if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
// masukkan script anda jika validasi benar
echo 'Terimakasih Pasan anda: "'.$_POST['message'].'"';
} else {
// masukkan script anda jika validasi salah
echo 'Sorry, anda memasukkan security code yang salah
';
include "form.htm";

}
} else {

include "form.htm";

}
?>
-------

3. script captchasecurityimages.php
-------


session_start();
class CaptchaSecurityImages {
var $font = 'monofont.ttf';
function generateCode($characters) {
/* list all possible characters, similar looking characters and vowels have been removed */
$possible = '23456789bcdfghjkmnpqrstvwxyz';
$code = '';
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
function CaptchaSecurityImages($width='120',$height='40',$characters='6') {
$code = $this->generateCode($characters);
/* font size will be 75% of the image height */
$font_size = $height * 0.75;
$image = @imagecreate($width, $height) or die('Cannot Initialize new GD image stream');
/* set the colours */
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 20, 40, 100);
$noise_color = imagecolorallocate($image, 100, 120, 180);
/* generate random dots in background */
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
}
/* generate random lines in background */
for( $i=0; $i<($width*$height)/150; $i++ ) {
imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
}
/* create textbox and add text */
$textbox = imagettfbbox($font_size, 0, $this->font, $code);
$x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code);
/* output captcha image to browser */
imagejpeg($image);
imagedestroy($image);
$_SESSION['security_code'] = $code;
}
}
$width = isset($_GET['width']) ? $_GET['width'] : '120';
$height = isset($_GET['height']) ? $_GET['height'] : '40';
$characters = isset($_GET['characters']) ? $_GET['characters'] : '6';
header('Content-Type: image/jpeg');
$captcha = new captchasecurityimages($width,$height,$characters);

?>
-------

4. file font

Gunakan font: monofont.ttf

*keterangan:
Anda harus mengupload juga file font nya, sebagai contoh saya menggunakan font "monofont.ttf", file font yang ukurannya paling kecil cocok buat website, semua file di atas harus di tempatkan pada directory/ folder yang sama.

Validasi Form dengan PHP

Posted by ilmu-web / Category:

Anda mau membuat peraturan untuk form-form di website anda??
Seperti:

- Nomor Telephone Harus memakai awalan "0" dan minimum 5 angka
- Email Harus ada "@" dan .com / .net atau apa saja
- Password harus sama dengan ReTypePassword
- Atau jika Form ada yang kosong salah satu maka batalkan proses

Untuk memvalidasi lebih baik gunakan PHP dari pada javascript

Oke ini Penjelasan script nya:
---------------
include 'db.php';

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$tlp = $_POST['tlp'];
$email_address = $_POST['email_address'];
$username = $_POST['username'];
$password = $_POST['password'];
$retypepassword = $_POST['retypepassword'];
$iphidden = $_POST['iphidden'];
$nim = $_POST['nim'];

-----------------
Script "include 'db.php';" di atas untuk connect dg database,
sedangkan script "$first_name = $_POST['first_name'];" dan lain-lain itu gunanya untuk mengambil data dari form sebelumnya saya kira teman2 sudah paham masalah ini...

-----------------
$polaemail = "^.+@.+\..+$";
$pola_tlp = "^[0-9]+$";
$polapassword = "^.{5,}$";
-----------------
Script di atas berfungsi untuk menentukan pola dari string yang kita tentukan, lihat Tabel di bawah ini:

Pola Kode
Harus di awal kata ^
Huruf A-Za-z
Angka 0-9
Huruf atau angka [A-Za-z0-9]
Semua jenis karakter .
Berjumlah satu atau lebih + atau {1,}
Berjumlah nol atau lebih * atau {0,}
Berjumlah tiga sampai sepuluh {3,10}
Diikuti dengan @ @
Tanda titik \.
Harus berada di akhir kalimat $

Jadi jika: $polaemail = "^.+@.+\..+$";
Deskripsi dari pola email:
^ (harus ada karakter di depan)
. (semua jedis karakter)
+ (Lebih dari satu)
@(tanda @)
. (semua jedis karakter)
+ (Lebih dari satu)
\. (di ikuti tanda titik)
. (semua jedis karakter)
+ (Lebih dari satu)
$ (Harus ada di akhir kalimat)

Jika anda mau email harus .com / .net / .org
Polanya seperti ini: ^.+@.+\.((com)|(net)|(org))$

-------------------
if((!$first_name) || (!$last_name) || (!eregi($pola_tlp, $tlp)) || (!eregi($polaemail, $email_address)) || (!$username) || (!eregi($polapassword, $password)) || (!$retypepassword) || ($password != $retypepassword))
-------------------
Pernyataan "if", Jika
Tanda "!" berarti tidak, script "!$first_name" berarti string "$first_name" tidak berisi atau kosong
Tanda "||" itu berarti "atau".
Script "!eregi($pola_tlp, $tlp)" "eregi" adalah fungsi untuk membandingkan, berarti jika $pola_tlp tidak sama dengan $tlp
Tanda "!=" berarti tidak sama

Script di atas berfungsi untuk memeriksa semua string apakah kosong atau polanya tidak sama. Jika ada salah satu string yang bermasalah kita langsung tampilkan pernyataan:
"Tolong Isi Formulir Ini Dengan Benar! "

Setelah itu kita tunjukkan bagian mana yang salah, dengan script:
-------------------

if(!$first_name){
?>
Tolong isi nama depan


}
if(!$last_name){
?>
Tolong isi nama belakang


}
if(!eregi($pola_tlp, $tlp)){
echo "Tolong isi Telpon, Harus Angka Ex. 085648173225
";
}
if(!eregi($polaemail, $email_address)){
echo "Tolong isi Email, Ex. scorpio@linux.org
";
}
if(!$username){
?>
Tolong isi username


}
if(!eregi($polapassword, $password)){
echo "Tolong isi Password, Harus Lebih dari 5 Karakter
";
}
if(!$retypepassword){
?>
Tolong isi retype password

}
if( "$password" != "$retypepassword" ){
?>
Passwordnya tidak sama, ulangi lagi ya !


}
?>
-------------------

Setelah kita tunjukkan salah nya dimana, kita sertakan file "form.htm" dengan script:
include "form.htm";

lalu kita akhiri proses:
exit();

Membuat PAGE 1 2 3

Posted by ilmu-web / Category:




Hai selamat pagi semuanya, kali ini saya akan menunjukkan bagai mana cara membuat halaman bertingkat dalam sebuah website yang content nya di generate dari database.

Jika anda memiliki "Dinamic Website" yang besar dan memiliki ribuan item /product anda pasti kesulitan untuk menampilkan item tersebut satu persatu secara beraturan, otomatis dan terkendali.

Solusinya adalah anda bisa memakai halaman.

<-Previous 1 2 3 Next->

Halaman tersebut contentnya di ambil dari database MySql, selain itu kita juga bisa menentukan berapa item yang akan kita tampilkan per-halaman. Menarik bukan???


Tabel database yang saya gunakan (ini hanya contoh):
-----
CREATE TABLE `content` (
`id` int(225) NOT NULL auto_increment,
`judul` varchar(50) collate latin1_general_ci NOT NULL default '',
`isi` longtext collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

-----

Koneksi db.php:
------

$dbhost = 'localhost';
$dbusername = 'user_kamu';
$dbpasswd = 'pass_kamu';
$database_name = 'database_kamu';
#under here, don't touch!

@$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd") or die
("MySql Putus tidak bisa connect ke server");
@$db = mysql_select_db("$database_name", $connection) or die("Database tidak ditemukan");
?>


Deskripsi Script:
--------------------------

/* ini kita include koneksi database */
include 'db.php';

/* tentukan table nya */
$table = content;

$hal = $_GET[hal];

/* jika page default nya 1 */
if(!isset($_GET['hal'])){
$page = 1;
} else {
$page = $_GET['hal'];
}

/* tentukan jumlah item per halaman */
$max_results = 5;

/* halaman di kali MAX jumlah item per halaman dikurangi MAX jumlah item per halaman */
/* logika: 1 x 5 = 5 , 5 - 5 = 0 , jadi id database dimulai dari 0*/
$from = (($page * $max_results) - $max_results);

/* tampilkan dari databse, LIMIT dari contuh diatas id dari 0 sampai 5 */
$sql = mysql_query("SELECT * FROM $table ORDER BY id DESC LIMIT $from, $max_results ");
while($row = mysql_fetch_array($sql)){

/* display result, ini tergantung table database mu */
?>
echo $row[2] ?>

echo $row[3] ?>

echo $row[1] ?> | Halaman Ini dibaca echo $row[6] ?> kali

echo $row[4]; ?>



}
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM $table"),0);

$total_pages = ceil($total_results / $max_results);

/* bangun jumlah hiperlink halaman*/
echo "

Select a Page
";

/* bangun Previous link */
if($hal > 1){
$prev = ($page - 1);
echo " <-Previous ";
}

for($i = 1; $i <= $total_pages; $i++){
if(($hal) == $i){
echo "$i ";
} else {
echo "$i ";
}
}

/* bangun Next link */
if($hal < $total_pages){
$next = ($page + 1);
echo "Next->";
}
echo "

";
?>
----------------

Referensi luar negri
Saya modifikasi supaya mudah di gunakan dan di implementasikan oleh teman-teman semua

Script ini telah di test dan jalan 100% di:
- mesin pentium III 650Mhz
- ram 256mb
- server konsol server XAMPP versi 1.5.3 Beta 5

Tutorial Membuat Komentar pada artikel

Posted by ilmu-web / Category:

Sering kita temui halaman-halaman tutorial pada web yang selalu memiliki fasilitas untuk memberikan komentar kepada penulisnya, maupun tulisannya. Sering pula ditemui komentar-komentar yang tidak diinginkan selalu hadir meramaikan isi komentar.
Ya langsung saja saya berikan sedikit penjelasan bagaimana cara membuatnya, yang perlu kita butuhkan untuk memasukkan komentar adalah halaman tutorial itu sendiri disamping fasilitas untuk memasukkan komentar.

Sehingga diperlukan sebuah tabel yang berfungsi untuk menyimpan isi artikel/tutorial dan sebuah tabel lagi yang digunakan untuk menyimpan komentar.

Berikut ini adalah struktur tabelnya :

create table artikelnya (id int(5) primary key auto_increment, penulis varchar(50), judul varchar(50) not null, isi_artikel text );

Kemudian tabel untuk menyimpan komentarnya :

create table komentarnya (id int(5) primary key auto_increment, nama_komentar varchar(40), email_komentar varchar(30), isi_komentar varchar(200), id_artikel int(50));


Langkah selanjutnya adalah membuat php script untuk membuat koneksi antara mysql dengan php, berikut ini adalah scriptnya :

config.php
$host = "localhost";
$username = "root";
$password = "";
$databasename = "cms_artikel";

$connection = mysql_connect($host, $username, $password);
mysql_select_db($databasename, $connection) ;
?>

Kemudian script untuk menampilkan judul artikelnya ...

main.php
require_once "config.php";

$query = "select * from artikelnya";
$runquery = mysql_query($query);

while($result = mysql_fetch_array($runquery))

{

$id = $result['id'];
$judul = $result['judul'];
$isi_artikelnya = $result['isi_artikel'];
$isi = substr($isi_artikelnya,0,400);
$isi = substr($isi_artikelnya,0,strrpos($isi," "));

print "$judul
$isi...";
print "Selengkapnya

";

}
?>

Script untuk menampilkan artikel secara keseluruhan ...

view.php
require_once "config.php";
$id = $_GET['page_detil'];

if (ISSET($_GET['page_detil']))
{

$query = "select * from artikelnya where id=$id";
$runquery = mysql_query($query);
$result = mysql_fetch_array($runquery);
$isi_artikel = $result['isi_artikel'];

print $isi_artikel ;
print "
Kembali ...

";

print "Komentarnya :


";
require_once "comment.php";
}
else
print "";

if ($_REQUEST['entry'] == "comment")
{

$id_artikel = $_POST['id_artikel'] ;
$nama = $_POST['nama'];
$komentar = $_POST['komentar'];

$query2 = "insert into komentarnya values('','$nama','$komentar','$id_artikel')";
$runquery2 = mysql_query($query2);

print "Berhasil di masukkan
";
print "Kembali...";

}
?>

Ini adalah script untuk menampilkan komentar, sekaligus form untuk memasukkan komentar

comment.php
require_once "config.php";
$query = "select nama_komentar, isi_komentar from komentarnya where id_artikel=$id order by id desc";
$runquery = mysql_query($query);

while ($result = mysql_fetch_array($runquery))
{

$nama_komentar = $result['nama_komentar'];
$isikomentar = $result['isi_komentar'];

print "Nama : $nama_komentar
$isikomentar
" ;

}
?>




Isi Komentar :

nama :

komentar :








Sedikit penjelasan mengenai script-script diatas.

Pada file config.php terdapat koneksi yang menghubungkan php dengan database mysql disitu tertulis
mysql_connect($host, $username, $password);
Yang merupakan inti yang menangani koneksi tersebut.


Dalam file main.php tertulis
$isi = substr($isi_artikelnya,0,400);
$isi = substr($isi_artikelnya,0,strrpos($isi," "));

Fungsi substr( ) disini berfungsi untuk memotong value dalam suatu record, dalam kasus ini record isi_artikelnya. Sehingga dalam halaman main.php yang ditampilkan hanyalah 400 karakter pertama, dengan range 0 - 400. Yang tampil pada browser hanya sebagian saja, tidak keseluruhan artikel. Selebihnya di sediakan link "selengkapnya ..." untuk melihat artikel secara keseluruhan.

Sedangkan strrpos( ) berfungsi mencari spasi dalam suatu variable dalam hal ini string.

Sehingga bila variable $isi berisi :
"loka keren sekali" :D~
dan variable tersebut mendapatkan fungsi substr( ) :
$isinya = substr($isi,0,5)

maka yang akan ditampilkan nanti adalah :
"loka k"

Sehingga perlu adanya fungsi strrpos( ) untuk menghilangkan karakter yang tidak perlu.
Sehingga variable $isi mendapatkan fungsi lagi yaitu :

$isinya = substr($isi,0,strrpos($isinya," ");

Ya, cukup sekian penjelasan saya mengenai tutorial membuat komentar pada artikel. Script ini masih terdapat banyak kekurangan, sehingga saya harapkan anda bisa mengembangkannya sendiri. Selamat mencoba. :D~

Multiple Delete Record dengan checkbox

Posted by ilmu-web / Category:

Yup, mungkin ada yang bertanya-tanya, gimana sih mendelete multiple record pada database MySQL. Gimana caranya ??!!
Dari situlah artikel ini berawal. Sebelumnya saya telah menemui kasus seperti itu, nah dari pada ilmu saya jadi basi, lebih baik saya tulis tutorial ini, iya gak ??!! :D
Langsung saja ke intinya, bentar lagi mau buka puasa. :D~~

Sebelum mendelete record, langkah awalnya adalah membuat database itu sendiri, berikut saya sediakan databasenya :

create database contohdelete ;
use contohdelete;
create table tabledelete (id int(5) primary key auto_increment, nama varchar(50), jabatan varchar(20), kegantengan int(2));
insert into tabledelete values('','Loka Dwiartara','Admin 2','8');
insert into tabledelete values('','Anggi Jatrasmara','Admin 1','5');
insert into tabledelete values('','Johan Felisitas','Admin 3','4');

Langkah selanjutnya adalah script untuk menampilkan database yang akan dihapus :D.
Script lengkapnya seperti ini :


/* view.php */
$host = "localhost";
$username = "root";
$password = "";
$database = "contohdelete";

$koneksi = mysql_connect($host, $username, $password);
mysql_select_db($database, $koneksi) or die("MysQL Error");

$perintah = "select * from tabledelete";
$jalankanperintah = mysql_query($perintah);
?>







print "Nama | Jabatan | Tingkat Kegantengan :D
";

while ($hasil = mysql_fetch_array($jalankanperintah))
{
print "$hasil[nama] | $hasil[jabatan] | $hasil[kegantengan]
";

}

?>




Script tersebut cukup familiar, oleh karena itu saya hanya menjelaskan sedikit saja.

Kalimat ...

print "$hasil[nama] | $hasil[jabatan] | $hasil[kegantengan]
";


sengaja saya gunakan name-nya hapus[ ] karena berbentuk array. Dan ini adalah inti yang menjembatani record database bisa di hapus.

Dan selanjutnya script untuk menghapus recordnya :


/* delete.php */
$host = "localhost";
$username = "root";
$password = "";
$database = "contohdelete";

$koneksi = mysql_connect($host, $username, $password);
mysql_select_db($database, $koneksi) or die("MysQL Error");


$id = $_POST[hapus];
$banyaknya = count($id);

if($_POST['hapusdong'])
{

for ($i=0; $i<$banyaknya; $i++)
{

$perintahdelete = "delete from tabledelete where id=$id[$i]";
$jalankanperintahdelete = mysql_query($perintahdelete);

}

if ($jalankanperintahdelete)
{
print "Record berhasil didelete
";

print "Klik disini untuk kembali";
}

}

?>

Di script ini pun saya akan menjelaskan sedikit, yaitu pada kalimat
$banyaknya = count($id);

if($_POST['hapusdong'])
{

for ($i=0; $i<$banyaknya; $i++)
{

$perintahdelete = "delete from tabledelete where id=$id[$i]";
$jalankanperintahdelete = mysql_query($perintahdelete);

}

if ($jalankanperintahdelete)
{
print "Record berhasil didelete
";

print "Klik disini untuk kembali";
}

}

terdapat argumen $banyaknya = count($id); berguna untuk menghitung berapa banyak record yang dipilih untuk dihapus.
ketika view.php menge-post variable $_POST['hapusdong'], yang berasal dari button submit, maka akan dilakukan looping untuk mendelete record sebanyak checkbox id yang dipilih. Dalam hal ini nilai dari banyaknya checkbox yang dipilih terdapat pada variable $banyaknya.

Yup, mungkin itu sedikit penjelasan dari saya, mengenai penggunaan checkbox sebagai acuan untuk melakukan delete yang berulang-ulang.
Wassalam.

Script PHP Informasi Anda - IP - Proxy - Koneksi

Posted by ilmu-web / Category:

Ini adalah script untuk membuat tampilan "informasi anda" seperti yang ada di website ilmuwebsite.com, dalam script ini akan menampilkan :

1. ip
2. proxy
3. koneksi

Silahkan memodifikasi script ini


$agent = $_SERVER['HTTP_USER_AGENT'];
$uri = $_SERVER['REQUEST_URI'];
$user = $_SERVER['PHP_AUTH_USER'];
$ip = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
$proxy = $_SERVER['HTTP_X_FORWARDED_FOR'];
$via = $_SERVER['HTTP_VIA'];
?>





















Informasi Anda:

IP:
echo $ip; ?>

Proxy:
echo $proxy; ?>

Koneksi:
echo $via; ?>

Validasi Form dengan PHP 2

Posted by ilmu-web / Category:

Artikel ini saya buat untuk melengkapi Artikel Anggi yang berjudul ?Validasi Form dengan PHP?. Jika Artikel Anggi membahas tentang cara mem-validasi nama, email, nomor telepon, dan Password, maka artikel saya akan membahas tentang validasi form tanggal. Seperti yang kita ketahui, bahwa di dalam penanggalan, tidak ada tanggal 30 pada bulan februari, tidak ada pula tanggal 31 pada bulan april, dst. Nah, bagaimana cara membuat validasi tersebut ? Pertama, buat file dengan nama ?index.php?. lalu ketikkan script berikut :

Article Last Update on 23 Februari 2008
Link Updated
Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

Membuat Halaman Login ... v.1

Posted by ilmu-web / Category:



Yup, seperti biasa. Kali ini saya akan memberikan contoh penggunaan database, session, dan enkripsi
MD5 untuk menjadikannya sebagai halaman login yang cukup aman, meskipun tidak aman 100%.
Dan tentunya artikel ini hanyalah sebuah contoh, sedangkan pengembangannya digantungkan kepada anda.
Seperti artikel yang sebelumnya, saya hanya menjelaskan sekelumit contoh yang berkaitan dengan
source code dan cara kerja source code tersebut.

Secara sederhana, cara kerjanya adalah seperti :

1.) Ketika user memasukkan username beserta passwordnya, maka yang pertama kali dilakukan adalah
mengeceknya dalam database apakah username telah terdaftar, jika telah terdaftar, dalam hal ini ada
dalam database maka kita memerlukan satu variable yang mengindikasikan bahwa user tersebut ada.

2.) Setelah itu maka sang user akan diberi sebuah session yang diambil dari usernamenya jika
pengecekan password sebelumnya oleh MD5 sukses dilakukan.

3.) Jika kesemuanya tidak sesuai maka sang user akan diredirect ke halaman login.html,
sehingga terlihat seperti diam di tempat.


Untuk memulainya kita buat terlebih dahulu databasenya :

create database userdb;
use userdb;
create table tbl_user(id int(3) primary key auto_increment,
username varchar(50), password varchar(50));
insert into tbl_user values('','admin','21232f297a57a5a743894a0e4a801fc3');

21232f297a57a5a743894a0e4a801fc3 --> ini adalah md5 hash dari 'admin'

Pertama-tama kita membuat halaman loginnya terlebih dahulu

// login.html

Halaman Login ...



















username
password




Kemudian halaman config.php

// config.php



$host = "localhost";
$username = "root";
$password = "";
$databasename = "userdb";
$connection = mysql_connect($host, $username, $password) or die("Kesalahan Koneksi ... !!");
mysql_select_db($databasename, $connection) or die("Databasenya Error");

?>

Setelah itu kita buat halaman cek.php

// cek.php



session_start();
include "config.php" ;

$username = $_POST['username'];
$password = $_POST['password'];
$passwordhash = md5($password); // mengenkripsikannya untuk dicocokan dengan database

$perintahnya = "select username, password from tbl_user where username = '$username' and password = '$passwordhash'";
$jalankanperintahnya = mysql_query($perintahnya);

$ada_apa_enggak = mysql_num_rows($jalankanperintahnya);

if ($ada_apa_enggak >= 1 )
{

$_SESSION['username'] = $username;
header("location: main.php");

}

else
header("location: login.html");

?>

Kemudian kita buat intinya main.php

// main.php



session_start();

if (ISSET($_SESSION['username']))
{
print $_SESSION['username'];
print "
logout";

}

else
header("location: login.html");

?>


Dan halaman logout.php ...

// logout.php



session_start();

if ($_REQUEST['maukeluar'] == "iya")
{
if(ISSET($_SESSION['username']))
{
UNSET($_SESSION['username']);
}

}
header("location: login.html");
session_destroy();

?>

Yup, cukup sudah, source codenya. Sekarang saya akan menjelaskan sedikit mengenai code-code diatas.
Kita lewat bagian config.php, karena sebelumnya pernah saya bahas, kita masuk ke bagian, cek.php.

lihat bagian

session_start();

Penggunaan session harus dimulai dengan menggunakan fungsi ini.
Kemudian disana tertulis kalimat seperti ini ...

$password = $_POST['password'];
$passwordhash = md5($password);

saya mengambil variable global $_POST['password'] kemudian menyisipkannya kedalam variable baru,
yakni $password. Karena didalam database sudah dalam bentuk enkripsi MD5 maka yang perlu dilakukan
untuk mencocokkan dengan yang ada dalam database adalah mengenkripsi variable global password tadi.
Cukup dimengerti.

Kemudian argumen selanjutnya adalah query SQL

$perintahnya = "select username, password from tbl_user where username = '$username' and password = '$passwordhash'";

Saya kira query diatas cukup familiar bagi anda. :)
Dan script-script dibawahnya cukup mudah untuk dimengerti :D.
Ya, saya cukupkan dahulu. Apabila ada yang masih bingung silahkan ditanyakan.
Terima Kasih.

Silahkan download script lengkapnya :
Article Last Update on 23 Februari 2008

Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

http://unair.info/img/loginpage.zip

Membuat Dynamic Title

Posted by ilmu-web / Category:




Salam.
SEO, lengkapnya Search Engine Optimization, yaitu sebuah cara yang mempermudah sebuah
website dikenali dan direcord dalam database search engine. Bagi anda seorang web
master banyak hal yang tentunya telah anda lakukan guna mempromosikan website anda
dengan mengikuti syarat-syarat SEO tersebut. Seperti penggunaan CSS, submit web ke penyedia
jasa search engine, membuat url yang friendly dengan mod_rewrite, membuat dynamic title, dan
segudang syarat lainnya.

Sesuai dengan judul yang telah saya berikan, kali ini saya akan menjelaskan secara sederhana
bagaimana membuat Dynamic Title.

Sederhananya untuk membuat Dynamic Title yaitu dengan memanfaatkan tag title pada html, kemudian
variable global $_REQUEST[], dan tentunya database MySQLnya.

Yup, langsung saja, yang akan kita lakukan adalah membuat databasenya terlebih dahulu.

//database.sql

create database cms_db;
use cms_db;
create table tablenyah(id int(5) auto_increment primary key,
judul_artikel varchar(100), penulis_artikel varchar(50), isi_artikel text);
insert into tablenyah values("","Membuat Dynamic Title dengan PHP","Loka Dwiartara",
"Pada suatu hari ada seorang penulis ...");
insert into tablenyah values("","Ryuzaki nggak ganteng","Al-k",
"Ryuzaki pada dasarnya emang nggak ganteng huehuehuheuhe .... ");


Berikut ini adalah source code lengkap-nya :

File konfigurasi, koneksi antara mysql dan php.

// config.php


$host = "localhost";
$username = "root";
$password = "";
$databasename = "cms_db";

$connect = mysql_connect($host, $username, $password) or die("Gagal Koneksi !!!");
$database = mysql_select_db($databasename, $connect);

?>


Dan script inti index.php


// index.php



<br /> <br /><?php <br /> <br />// Dynamic Title <br />// by : Loka Dwiartara a.k.a Al-k <br />// http://www.ilmuwebsite.com <br /> <br />include "config.php"; <br />$id = $_REQUEST['id']; <br /> <br />$query1 = "select judul_artikel from tablenyah where id='$id' "; <br />$runquery1 = mysql_query($query1); <br />$judul = mysql_fetch_array($runquery1); <br /> <br />if($_REQUEST['mode'] == "tutorial_php") <br />{ <br />print "Tutorial PHP"; <br /> <br /> if (!ISSET($_REQUEST['id'])) <br /> { <br /> print " | ilmuwebsite.com "; <br /> } <br /> else <br /> { <br /> print " | ". $judul['judul_artikel']; <br /> } <br /> <br />} <br /> <br />else <br />{ <br />print "Ilmuwebsite.com"; <br />} <br /> <br />?> <br /> <br />






$query2 = "select id, judul_artikel, penulis_artikel, isi_artikel from tablenyah";
$runquery2 = mysql_query($query2);

$query3 = "select judul_artikel, penulis_artikel, isi_artikel from tablenyah where id='$id'";
$runquery3 = mysql_query($query3);

if (ISSET($_REQUEST['mode']))

{

if (!ISSET($_REQUEST['id']))
{
while ($result = mysql_fetch_array($runquery2))
{
print "
$result[judul_artikel]

";
}

print "
Kembali";
}


else
{
$content = mysql_fetch_array($runquery3);
$judul = $content['judul_artikel'];
$penulis = $content['penulis_artikel'];
$isi = $content['isi_artikel'];

print "$judul
";
print "Penulis : $penulis

";
print "$isi";
print "

Kembali";
}

}

else
{
print "Tutorial PHP
";
}

?>





Ya, saya akan sedikit membahas source tersebut.
Pada file config.php diatas ...

$connect = mysql_connect($host, $username, $password) or die("Gagal Koneksi !!!");
$database = mysql_select_db($databasename, $connect);

variable variable $connect berfungsi mengkoneksikan Server PHP dengan database MySQL,
sedangkan variable $database melakukan seleksi database apa yang akan digunakan nantinya.


Pada index.php, saya hanya menjelaskan bagian intinya saja, yakni :


include "config.php";
$id = $_REQUEST['id'];

$query1 = "select judul_artikel from tablenyah where id='$id' ";
$runquery1 = mysql_query($query1);
$judul = mysql_fetch_array($runquery1);

if($_REQUEST['mode'] == "tutorial_php")
{
print "Tutorial PHP";

if (!ISSET($_REQUEST['id']))
{
print " | ilmuwebsite.com ";
}
else
{
print " | ". $judul['judul_artikel'];
}

}

else
{
print "Ilmuwebsite.com";
}

?>

Logikanya kira-kira seperti ini, ketika user masuk pada halaman index.php kemudian melakukan
klik pada link, dalam hal ini misalnya Tutorial PHP yang kemudian menghasilkan
variable global $_REQUEST['mode']-nya berisi "tutorial_php" maka yang terjadi adalah tag title
akan berisi Tutorial PHP, diambil dari ekspresi :

...

if($_REQUEST['mode'] == "tutorial_php")
{
print "Tutorial PHP";

...


Dan dan tag title pun akan berubah pada kondisi ketika user melakukan klik pada salah satu sub link
dengan memanfaatkan variable global $_REQUEST['id'].

Sederhananya seperti itu.
Cukup sekian untuk tutorial kali ini.

Script lengkapnya bisa anda download di sini :

Article Last Update on 23 Februari 2008
Link Updated
Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

http://unair.info/img/dynamictitle.zip

Selamat Mencoba.

Metode Searching Sederhana v.1

Posted by ilmu-web / Category:



Yup, setelah membaca banyak komentar dari sekalian visitor yang saya cintai, :D banyak pertanyaan yang jawabannya harus di tumpahkan dalam berbagai artikel, dan tentunya jika artikel tersebut dibuat satu persatu mungkin dalam 2 minggu ke depan saya bakal libur mandi dan buang air untuk sementara, diakibatkan dari banyaknya pertanyaan yang harus dijawab.
:D~~

Artikel ini merupakan kelanjutan jawaban dari pertanyaan yang mas blakutuk utarakan.

PHP memiliki select yang fungsinya dapat digunakan sebagai searching. Tentunya ditambah dengan argumen yang spesifik terhadap sekelompok data yang akan dicari.

Seperti biasa, yang akan kita lakukan adalah membuat databasenya terlebih dahulu.

create database cms_db;
use cms_db;
create table cms_artikel (id int(3) primary key auto_increment,
judul_artikel varchar(100), penulis_artikel varchar(70),
isi_artikel text);
insert into cms_artikel values('','Ryuzaki...','Al-k','Pada dasarnya ryuzaki itu tidak ganteng :D');
insert into cms_artikel values('','Sejati...','Al-k','Kegantengan sejati pemilik ketampanan ... ');


// config.php



$host = "localhost";
$username = "root";
$password = "";

$databasename = "cms_db";

$connect = mysql_connect($host, $username, $password) or die ("Nggak bisa konek !");
mysql_select_db($databasename, $connect) or die("Nggak bisa konek !");

?>


// Halaman searchnya, index.php :



include "config.php";

$mode = $_REQUEST['mode'] ;
$id = $_REQUEST['id'];
$search = trim($_POST['search']); // menghilangkan space di kiri dan kanannya

$searchquery = "select * from cms_artikel where isi_artikel like '%$search%'";
$runsearchquery = mysql_query($searchquery);

$viewquery = "select * from cms_artikel where id = '$id'";
$runviewquery = mysql_query($viewquery);

if ($mode == "search" )
{

$numrows = mysql_num_rows($runsearchquery);

print "
Data yang anda cari, ada dalam database sebanyak : $numrows


" ;

while ( $result = mysql_fetch_array($runsearchquery))
{
$id = $result['id'];
$judul = $result['judul_artikel'] ;

print "$judul
";

}

print "
kembali";


}

else if($mode == "view")
{
while ( $result = mysql_fetch_array($runviewquery))
{
$id = $result['id'];
$judul = $result['judul_artikel'] ;
$penulis = $result['penulis_artikel'];
$isi = $result['isi_artikel'];

print "$judul
$penulis
$isi";


}

print "
kembali";

}

else
{

?>



Search Database ...












}

?>

Beberapa fungsi yang akan saya jelaskan disini, yaitu :

trim();

Pada umumnya seorang user yang mungkin tidak sengaja menyisipkan space di depan ataupun di belakang string ketika menginput data. Fungsi trim() dapat digunakan Untuk menghilangkan space tersebut.

Query intinya :

$searchquery = "select * from cms_artikel where isi_artikel like '%$search%'";

kalimat query dalam variable tersebut, berupa seleksi data dengan spesifikasi string yang akan dicari oleh user mirip dengan yang ada pada database.

Sebagai contoh, ketika user mencari "ryu" maka database yang didalamnya terdapat string *ryu* akan ditampilkan. Hasil yang akan ditampilkan contohnya seperti ryuzaki. Kira kira seperti itu.

Cukup sederhana.
Silahkan dikembangkan.
Source codenya dapat didownload langsung dari sini :

Article Last Update on 23 Februari 2008

Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

http://unair.info/img/simple-searching.zip

Terima kasih.

// greetz : someone

http://www.networkandgame.890m.com

Root Mapping Menu

Posted by ilmu-web / Category:




"Mapping Menu"adalah salah satu jenis pemetaan terhadap direktori website kita yang bertujuan untuk mempermudah client kita untuk menjelajahi website kita.

Tidak usah banyak basa-basi, disini saya akan sedikit menjelaskan cara pembuatan mapping menu tersebut. Seperti biasa, untuk membuat sebuah program pasti butuh kodenya... ;p

Contoh kodenya adalah dibawah ini :


$originalpath=$_SERVER['PHP_SELF'];

$urlbase='http://'.$_SERVER['HTTP_HOST'];

$roottitle='Home';

$path=explode('/',$originalpath);

$jml_element=count($path);

echo '

Search:
';

echo ''.$roottitle.'';

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

$urlbase=$urlbase.'/'.$path[$i];

$path[$i]=str_replace('.php', '', $path[$i]);

$path[$i]=ucwords($path[$i]);

echo ' / ' .$path[$i]. '';

}

echo '
';

?>


Untuk penjelasan masing-masingnya....

Pada baris

$originalpath=$_SERVER['PHP_SELF'];

$urlbase='http://'.$_SERVER['HTTP_HOST'];

$roottitle='Home';

Disini kita mengeset path, url base, dan judul rootnya. Kalau belum mengerti baca dulu sampai selesai baru kamu akan mengerti sendiri gunanya masing-masing.. ;p

Baris

$path=explode('/',$originalpath);

Mengubah path menjadi array dan memisahkannya melalui tanda slash

Kemudian baris

$jml_elm=count($path);

Untuk menghitung (counting) elemen total pada array yang kita dapat tadi

Terakhir pada loop-nya

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

$urlbase=$urlbase.'/'.$path[$i];

Menambahkan direktori selanjutnya

$path[$i]=str_replace('.php', '', $path[$i]);

Menghilangkan ekstensi .php pada menu mapping

$path[$i]=ucwords($path[$i]);

Mengubah huruf awal menjadi huruf kapital

}

that's all....

untuk download file zip-nya disini

Article Last Update on 23 Februari 2008

Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

Metode Searching - Multiple Keyword

Posted by ilmu-web / Category:


Tutorial kali ini sebetulnya hanyalah pengembangan dari tutorial sebelumnya, Metode Searching Sederhana ( selengkapnya dapat dilihat di http://www.ilmuwebsite.com/detil_php_tutorial/16/Metode_Searching_Sederhana_v.1/ ). Setelah menerima masukkan dari salah satu staff ilmuwebsite, akhirnya saya mencoba untuk sedikit memoles beberapa bagian.

Penambahan-penambahan yang saya lakukan :

Multiple Searching, dengan kata lain, user dapat melakukan searching dengan multiple keyword.
Bold dan Highlight pada setiap keyword yang dicari.

Seperti biasa, dalam tutorial kali ini, saya hanya menjelaskan sedikit saja, karena sebagian besar telah dijelaskan pada tutorial sebelumnya.

Tetapi sebelumnya, yang kita butuhkan adalah sebuah database :

create database cms_db;
use cms_db;
create table cms_artikel (id int(3) primary key auto_increment, judul_artikel varchar(100), penulis_artikel varchar(70), isi_artikel text);

insert into cms_artikel values('','Ryuzaki...','Al-k','Pada dasarnya ryuzaki itu tidak ganteng :D');

insert into cms_artikel values('','Sejati...','Al-k','Kegantengan sejati pemilik ketampanan ... ');

insert into cms_artikel values('','Kegantengan Sejati','Al-k','Begitulah, kadang orang melihat seseorang hanya dari penampilannya saja. Sebagian besar mengatakan, semuanya kan berawal dari penampilan, penampilan yang baik membuktikan yang berpenampilannya memiliki hati seperti itu. Padahalkan nggak kaya gitu, iya nggak ? Jujur aja, dalam hal ini gw sama kaya loe, termasuk orang yang berpenampilan apa adanya, yang ada ya gw pake, kalo yang nggak ada, gw nggak akan pake. to be continued !!!');



// file config.php



$host = "localhost";
$username = "root";
$password = "";

$databasename = "cms_db";

$connect = mysql_connect($host, $username, $password) or die ("Nggak bisa konek !");
mysql_select_db($databasename, $connect) or die("Nggak bisa konek !");

?>

// dan script inti, index.php



// Searching Multiple Keyword

// ///////////////////////////////

// by : Loka Dwiartara a.k.a Al-k
// alkemail@gmail.com
// http://www.ilmuwebsite.com

// ///////////////////////////////

include "config.php";

$mode = $_REQUEST['mode'] ;
$id = $_REQUEST['id'];

// menghilangkan space di kiri dan kanannya
$search = trim($_POST['search']);

// memisahkan array perkata
$search_array = explode(" ",$search);
$banyak_kata = (integer)count($search_array);

// query looping, sehingga menghasilkan
// select * from cms_artikel where isi_artikel
// like '%$search_array[$x]%' AND isi_artikel like '%%'

$searchquery = "select * from cms_artikel where " ;

for ( $x = 0; $x<= $banyak_kata; $x++)
{

$searchquery .= "isi_artikel like '%$search_array[$x]%'";

if ( $x < $banyak_kata )
{

$searchquery .= " AND ";

}

}

$runsearchquery = mysql_query($searchquery);

$viewquery = "select * from cms_artikel where id = '$id'";
$runviewquery = mysql_query($viewquery);

if ($mode == "search" )
{

$numrows = mysql_num_rows($runsearchquery);

// memberikan highlight dan bold pada string yang dicari
// dengan looping sebanyak $banyak_kata

print "String yang anda cari : ";

for ( $x = 0; $x<= $banyak_kata; $x++)
{

$search_replace[$x] = "
$search_array[$x]
";

print "$search_replace[$x] ";

}

print "
Data yang anda cari, ada dalam database sebanyak : $numrows


" ;

while ( $result = mysql_fetch_array($runsearchquery))
{

$id = $result['id'];
$judul = $result['judul_artikel'] ;
$isi = $result['isi_artikel'];

// memberikan highlight dan bold pada setiap kata yang dicari
$isi_baru = str_replace($search_array, $search_replace, $isi);

$isi_display = substr($isi_baru, 0, 800);
$isi_display = substr($isi_baru, 0, strrpos($isi_display, " "));

print "$judul
$isi_display ...

";


}

print "
Kembali";


}

else if($mode == "view")
{
while ( $result = mysql_fetch_array($runviewquery))
{
$id = $result['id'];
$judul = $result['judul_artikel'] ;
$penulis = $result['penulis_artikel'];
$isi = $result['isi_artikel'];

print "$judul
Penulis : $penulis
$isi";


}

print "
Kembali";

}


else
{

?>



Search Database ...














}

?>

Cukup Panjang tapi bermakna :D. Ya, sebelum saya jelaskan script diatas, ada baiknya kita lakukan review terlebih dahulu mengenai query sql untuk single keyword.

select * from cms_artikel where isi_artikel like '%$search%'

query diatas, berfungsi melakukan seleksi terhadap database, mengacu kepada field isi_artikel, dengan single keyword. Bagaimana jika sang user memasukkan multiple keyword ? jelas hasilnya akan 0. Terkecuali jika multiple keyword yang dicari berada secara berurutan dalam database.

Di sinilah letak jawabannya, mysql mengijinkan kita menggunakan multiple keyword sekaligus dalam melakukan pencarian database. Dengan penambahan operand AND di antara keyword yang dicari. Sehingga apabila kita mencari 3 keyword sekaligus, maka mysql mengizinkan kita menggunakan query seperti ini :

select * from cms_artikel where isi_artikel like '%$keyword1%' AND '%$keyword2%' AND '%$keyword3%'

Melihat query di atas, penggunaan looping pada php sangat dibutuhkan untuk mengimplementasikannya.

Ketika user memasukkan keyword ke dalam textbox search, yang harus dilakukan adalah memisahkan/memecah keyword tersebut dalam sebuah array :

$search_array = explode(" ",$search);

Langkah selanjutnya, menghitung berapa banyak variable yang terdapat dalam array tersebut. Hal ini digunakan sebagai titik acuan berapa banyak looping akan dilakukan nantinya.

$banyak_kata = (integer)count($search_array);

Setelah itu ? looping ?

$searchquery = "select * from cms_artikel where " ;
for ( $x = 0; $x<= $banyak_kata; $x++)
{
$searchquery .= "isi_artikel like '%$search_array[$x]%'";

if ( $x < $banyak_kata )
{
$searchquery .= " AND ";
}
}

Sehingga $searchquery nantinya menjadi :

select * from cms_artikel where isi_artikel like '%$search_array[0]%' AND '%$search_array[1]%' AND '%$search_array[2]%' AND '%$search_array[n]%'


Untuk melakukan bold dan highlight pada keyword yang dicari pada dasarnya hanya mereplace string sebelumnya dengan tag bold dan highlight.
Sebagai contoh dalam sebuah variable

$sejati = ?Ryuzaki pada dasarnya tidak ganteng ?;

Kemudian kita akan melakukan perubahan ganteng menjadi ganteng

Maka ?
Str_replace (?ganteng?,?ganteng?,$sejati);

Hasilnya ?
Ryuzaki pada dasarnya tidak ganteng

Karena dalam bentuk array maka perlu dilakukan looping masal terhadap isi array tersebut.

print "String yang anda cari : ";

for ( $x = 0; $x<= $banyak_kata; $x++)
{

$search_replace[$x] = "
$search_array[$x]
";

print "$search_replace[$x] ";

}

Sehingga ?
Lakukan bold dan highlight :

$isi_baru = str_replace($search_array, $search_replace, $isi);


Ex :
Pencarian ?

Hasilnya ?

Cukup sekian penjelasan dari saya.
Silahkan dikembangkan.
Terima kasih.

Script lengkapnya bisa anda download di sini :

Article Last Update on 23 Februari 2008

Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

http://unair.info/img/loka-multiplesearching.zip

Greetz :
// b_scorpio, phii_ , safril, ryuzaki etc
// anak-anak PHP Club STTT
http://www.networkandgame.890m.com

Membuat Cuplikan Artikel

Posted by ilmu-web / Category:


Alooo semua?kali ini Phii akan membahas bagaimana cara membuat cuplikan artikel. Kaya yang di home-nya ilmuwebsite artikel2nya juga diculik dulu eh..dicuplik, baru kemudian ada link untuk detail artikelnya. Ok, langsung saja, kita akan mempersiapkan file-filenya:

1. Database
create database db_artikel ;
use db_artikel;
create table artikel (id int unsigned not null primary key auto_increment, judul varchar(100) not null, konten text not null, tgl date not null, pengirim varchar(50) not null);

INSERT INTO `artikel` VALUES (1, 'B_scorpio dan sekutu-sekutunya', 'Pada suatu hari, hiduplah seorang manusia yang sangat berambisi menguasai dunia. Manusia itu bernama b_scorpio. Setiap hari, b_scorpio terus belajar, berlatih, menimba ilmu di sana sini, sampai-sampai lupa makan, lupa tidur n yang paling parah lupa pacaran, he..he... Semua itu demi 1 tujuan, yaitu menguasai dunia. Untuk mendukung tujuannya itu, b_scorpio mengumpulkan sekutu-sekutu untuk membantu misi-misinya, karena walau bagaimanapun 1 sapu akan lebih kuat daripada 1 lidi, maksudnya? Kaga tau, he..he.. Akhirnya, berkumpullah para sekutu-sekutu b_scorpio, yaitu Al-k, Ryuzaki, Phii, Safril, Ivan, Fadli, Ronny, ada yang lom kesebut? Ya maappppp, ga bawa presensi, jadi lupa, he..he.. Mereka bahu membahu menjadi satu itulah Indonesia, Indonesia tanah airku aku berjanji padamu, loh..loh..apa yang terjadi..kok jadi nyanyi...TAMAT', '2007-12-18', 'Phii');
INSERT INTO `artikel` VALUES (2, 'Staff baru ilmuwebsite cowok lagi????', 'Mas Anggi, cariin staff cewek dunk, buat nemenin Phii. Atau Si Ronny suruh berubah jadi cewek aja, he..he.. kalo Ronny ga mau, Anggi aja, kan namanya udah feminin tuh!!! Hua..ha..ha.. Banyak yang ngira Anggi tuh cewek loh. Dulu Phii juga mikirnya Anggi tuh cewek, eh ga taunya Anggi tuh bos besarnya ilmuwebsite alias b_scorpio. Kemaren, b_scorpio dah ngajuin syarat buat jadi staff ilmuwebsite. Phii mo ngadain audisi buat perekrutan staff baru ilmuwebsite selanjutnya, tapi khusus cewek, jadi barang siapa yang berminat, silahkan berubah jadi cewek dulu, huehe..he..', '2007-12-18', 'Phii');

2.File koneksi.php

$host="localhost"; $uname="root"; $pass="phii"; $db="db_artikel";
$koneksi=mysql_connect($host,$uname,$pass);
mysql_select_db($db,$koneksi);
?>

3. File fungsi.php

function cuplikArtikel($konten,$url)
{
$maxKata=20; //max kata dalam cuplikan artikel --> silahkan diganti sesuai kebutuhan
$pecahArtikel=explode(' ',$konten); //pecah artikel menjadi array of string

if(count($pecahArtikel) > $maxKata)
{
$cuplik='';
for($a=0;$a<$maxKata;$a++)
{
$cuplik.=$pecahArtikel[$a]." " ;
}
echo"$cuplik . . . .
Selengkapnya>> ";

}
else
{
echo $konten;
}
}
?>

4.File artikel_cuplik.php

include 'koneksi.php';
include 'fungsi.php';

if(isset($_GET['act']) && !empty($_GET['act']) && ($_GET['act']==='detail'))
{
file_exists('artikel_detail.php') ? include 'artikel_detail.php' : die('Halaman detail artikel tidak ditemukan');
}
else
{
$sqlArtikel=mysql_query("select * from artikel order by id desc");
echo"

Search:
";
while($hasilSqlArtikel=mysql_fetch_row($sqlArtikel))
{
$id=$hasilSqlArtikel[0];
$judul=$hasilSqlArtikel[1];
$konten=$hasilSqlArtikel[2];
$tgl=$hasilSqlArtikel[3];
$pengirim=$hasilSqlArtikel[4];

$url='?act=detail&idDet='.$id.'';

echo"
";
echo"$judul
$pengirim | $tgl
";

cuplikArtikel($konten,$url);
echo"
";

}
}
?>

5.File artikel_detail.php

$idDetail=$_GET['idDet'];

$sqlDetail=mysql_query("select * from artikel where id='$idDetail'");
$hasilSqlDetail=mysql_fetch_array($sqlDetail);
$judul=$hasilSqlDetail['judul'];
$konten=$hasilSqlDetail['konten'];
$tgl=$hasilSqlDetail['tgl'];
$pengirim=$hasilSqlDetail['pengirim'];

echo"

";
echo"$judul
$pengirim | $tgl

$konten";

echo"
<<>
";

?>

Algoritma cuplikan artikel :

1. Tenentukan maksimal kata dalam cuplikan artikel, misal 20 kata
2. Pecah artikel menjadi array of string menggunakan fungsi exlpode dengan string pemisahnya spasi.
3. Cek, jika jumlah hasil fungsi explode > maksimal kata dalam cuplikan, maka potong artikel sejumlah
maksimal kata dalam cuplikan. Siapkan url untuk detail artikel.
Jika lebih kecil, tampilkan seluruh artikel.

Pembahasan :
1. Jalankan file artikel_cuplik.php
2. Dalam file artikel_cuplik.php akan memanggil fungsi cuplikArtikel dengan parameter yang dikirimkan adalah
konten artikel yang disimpan dalam variabel $konten dan url detail artikel yang disimpan dalam variabel $url.
3. Saat fungsi cuplikArtikel dipanggil, maka akan menjalankan fungsi tersebut yang berada pada file fungsi.php.
4. Fungsi cuplikArtikel akan menjalankan script sesuai algoritma di atas.
Jadi tampilannya kira-kira seperti ini :


5. Klik link selengkapnya, maka akan menjalankan file artikel_detail.php sehingga akan menampilkan detail
artikel yang dipilih

Temen2 bisa donlot scriptnya
disini

Begitulah kira-kira membuat cuplikan artikel. ?BANYAK JALAN MENUJU ROMA? cara di atas mungkin bukan cara satu-satunya. Jika ada temen-temen yang mempunyai cara lain yang lebih baik silahkan ditambahkan.

Salam bwt anak2 ilmuwebsite --> B_scorpio, Al-k, Safril, Ryuzaki, Safril, Fadli, Ronny
Article Last Update on 23 Februari 2008

Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

Memperbaiki kode HTML dengan ekstensi php_tidy.dll

Posted by ilmu-web / Category:

sebagai seorang web programmer pasti kita pernah salah dalam menuliskan kode-kode HTML atau melewatkan beberapa tag HTML,
Hal seperti ini biasanya terjadi jika kita bekerja dengan banyak elemen

, ,
yang kompleks..
pasti sangat menyulitkan dan membingungkan bukan?? ;)

Untuk itu PHP versi 5.XX memberikan sebuah fitur yang bisa kita manfaatkan untuk menanggulangi masalah tersebut,
yaitu ekstensi tidy.. ( untuk PHP versi sebelumnya belum pernah saya coba.. ;p )

Salah satu fungsi ektensi tidy ini dapat memperbaiki kode HTML kita secara otomatis
tanpa kita harus memeriksa kode HTML satu persatu.. ;D

untuk dapat menggunakan ekstensi ini sebelumnya kita harus mengaktifkan ekstensi php_tidy.dll (windows) atau php_tidy.so (Unix)
pada file php.ini kita..

Jika anda kebingungan, buka file php.ini dengan notepad anda kemudian search :\

;extension:php_tidy.dll (pada windows)

atau

;extension:php_tidy.so (pada Unix/Linux)

hilangkan tanda titik koma (;) untuk mengaktifkannya, setelah itu restart Server anda..

jika php_tidy.dll anda sudah aktif maka pada phpinfo anda akan terdapat tampilan seperti ini :




Untuk langkah-langkah programnya..

Pertama, buat sebuah file berinama php_tidy.php dengan source seperti dibawah ini :

//file yang akan diperbaiki
$file='./php_tidy.html';
//direktori untuk backup file
$dir='./backup';
//file backup
$backfile=$file.time().'.txt';

if(file_exists($file)) {
?>

Before :



//menampilkan source kode html sebelum diperbaiki,
//untuk dijadikan perbandingan aja.. ;)
show_source($file);
//perbaikan kode html dimulai dimulai
$hasil=tidy_repair_file($file);
//direktori sudah ada??
$cekdir=is_dir($dir);

if(!$cekdir) {
//jika belum
mkdir($dir);
copy($file, $dir.$backfile);
} else {
//jika ada
copy($file, $dir.$backfile);
}
//memasukkan kode yang telah benar kedalam file asli
file_put_contents($file, $hasil);
?>

After :



//menampilkan hasil kode html yang telah diperbaiki
show_source($file);
} else { ?>

Warning: File is not exists!



kemudian kita buat sebuah file HTML yang ingin kita perbaiki, beri nama php_tidy.html
harus sama seperti nama variabel $file pada source php_tidy.php..

untuk source kode pertamanya ikuti saya dahulu, selanjutnya terserah anda.. ;D
(kita buat kode HTML yang tidak valid sama sekali.. ;p )






memperbaiki kode HTML dengan php_tidy.dll
php_tidy






Oiya.. letakkan 2 file diatas dalam 1 Folder
Setelah itu jalankan php_tidy.php kita..

Jika benar akan muncul tampilan seperti ini :



Nah, mudahkan??
untuk membuktikannya, buka Folder backup yang telah digenerate oleh parser php..
didalamnya terdapat file dengan ekstensi .txt
itu adalah file asli kita sebelum diperbaiki,
silahkan bandingkan sendiri kode HTML-nya... ;D

semoga bermanfaat..

Article Last Update on 23 Februari 2008
Link Updated
Download Ebooknya disini -> Download Semua Ebook Tutorial PHP ilmuwebsite

untuk download file source-nya disini