Hosting Unlimited Indonesia

Recent Comment

Navigation

Crud dan Pagination Menggunakan Httaccess di PHP

Assalmualaikum Warahmatullahi Wabarakatu
Bismillahirrahmanirrahiim

Crud (Create, Read, Update, dan Delete) adalah kebutuhan sebuah aplikasi web yang dinamis untuk mengolah data, dengan membuat crud menggunakan httaccess kita dapat menghindari dan melindungi website kita dari serangan sql injection yang sering dilakukan oleh crakcer untuk Deface web melalui id dari database, disini saya akan membahas bagaimana cara membuat CRUD & pagination Dengan httaccess yang mungkin menjadi kebutuhan dan solusi dari permasalahan yang sobat hadapi, oke langsung saja ….


Langkah pertama
Sebelum memulai membuat crud dengan httaccess, kita harus tau terlebih dahulu tau apa itu yang disebut dengan httaccess?.
Htaccess adalah file konfigurasi yang disediakan oleh web server apache, yang biasanya digunakan untuk mengubah settingan default dari apache. Htaccess biasanya diletakkan pada root direktori. Htaccess harus dalam format ASCII dan dengan permission yang diset pada 644 (rw-r-r) dengan tujuan membuat server dapat mengakses file .htaccess sedangkan visitor website tidak dapat mengakses htaccess dari browser.
Kode perintah dalam htaccess harus ditempatkan dalam satu baris, jadi jika kita menggunakan notepad untuk membuat htaccess maka kita harus mendisable fungsi wordwrap pada notepad.

Fungsi Htaccess
Kustomisasi error message
Overide SSl settings
Merubah default Homepage
Enable directory browsing
Mem-block user yang akan mengakses website
Meredirect / mengarahkan pengunjung website ke halaman lain
Mencegah Hot linking dan bandwith leeching

Httaccess merupakan file teks biasa, cara membuatnya gunakan text editor seperti sublime text atau notepad++ dan simpan dengan nama .httaccess kedalam folder root aplikasi sobat, biasanya file ini terhidden jadi lakukan perintah untuk show hidden file.
Dibawah adalah contoh file .httaccess yang akan kita gunakan didalam tutorial ini

RewriteEngine on 
RewriteRule ^index.html$ ?page=home [L]
RewriteRule ^about.html$ ?page=about [L]
RewriteRule ^blog.html$ ?page=blog [L]
RewriteRule ^addblog(.*)\.html$ ?page=addblog [L]
RewriteRule ^save(.*)\.html$ ?page=saveblog [L]
RewriteRule ^Readblog@_@(.*)\.html$ ?page=readblog&blog_id=$1 [L]
RewriteRule ^Editblog@_@(.*)\.html$ ?page=editblog&blog_id=$1 [L]
RewriteRule ^update(.*)\.html$ ?page=update [L]
RewriteRule ^deleteblog@_@(.*)\.html$ ?page=deleteblog&blog_id=$1 [L]
RewriteRule ^page_blog-(.*)\.html$ ?page=blog&page_blog=$1 [L]
RewriteRule ^contact.html$ ?page=contact [L]
Options All -Indexes
Keterangan kode .httaccess diatas

RewriteEngine On, Mengaktifkan RewriteEngine

RewriteCond merupakan salah satu directive pada modul mod _rewrite yang berguna untuk mengecek kondisi tertentu.

RewriteRule, berguna untuk mecari pola url dan jika ketemu akan mereplacenya dengan url yang kita inginkan. RewriteRule merupakan Aturan penulisan ulang. Contohnya RewriteRule ^index.html$ ?page=home [L], kita mereplace ?page=home dengan index.html dan [L] adalah perintah untuk menghentikan penulisan ulang index.html jika sudah ketemu.

Options All -Indexes
Options All -Indexes artinya Untuk mengijinkan Directory Listing,sobat dapat menghapus line tersebut atau mengganti tanda - dengan tanda +.

^ = Awal pengujian regresi
() = pengelompokan atau grup
* = semua atau wildcard, biasanya dipakai dengan notasi .*
{0,1} = jangkauan mulai dari 0 sampai 1
$ = Akhir regresi
[QSA] = Append Query String: menambahkan langsung string query ke akhir ekspresi (URL).
[L] = Last Rule: menginstruksikan server untuk menghentikan penulisan ulang (rewriting) jika telah ditemukan yang sesuai dengan rule.
Pada tutorial ini kita hanya menggunakan beberpa code yaitu (.*)\,[L],^. Tapi ingat berhati-hatilah dalam menggunakan httaccess, jika sobat memutuskan untuk menggunakan httaccess untuk project website sobat, maka pertahankanlah untuk menggunakannya sampai project sobat selesai, untuk link file js,css,images saya sarankan sobat tetap menggunakan link absolute artinya tanpa menggunakan httaccess, gunakanlah httaccess dengan bijak dan benar.

Langkah kedua
Buatlah file .httaccess dengan editor kesayang sobat, dan letakkan di dalam folder aplikasi sobat, kemudian copy atau ketik kode dibawah ini, contoh nya folder saya terdapat di C:\xampp\htdocs\php\httaccess\.

RewriteEngine on 
RewriteRule ^index.html$ ?page=home [L]
RewriteRule ^about.html$ ?page=about [L]
RewriteRule ^blog.html$ ?page=blog [L]
RewriteRule ^addblog(.*)\.html$ ?page=addblog [L]
RewriteRule ^save(.*)\.html$ ?page=saveblog [L]
RewriteRule ^Readblog@_@(.*)\.html$ ?page=readblog&blog_id=$1 [L]
RewriteRule ^Editblog@_@(.*)\.html$ ?page=editblog&blog_id=$1 [L]
RewriteRule ^update(.*)\.html$ ?page=update [L]
RewriteRule ^deleteblog@_@(.*)\.html$ ?page=deleteblog&blog_id=$1 [L]
RewriteRule ^page_blog-(.*)\.html$ ?page=blog&page_blog=$1 [L]
RewriteRule ^contact.html$ ?page=contact [L]
Options All -Indexes
 
Jika sudah dicopy atau diketik lalu save, dan ikuti langkah selanjutnya

Langkah ketiga
Buat database sesuai dengan nama sesuai dengan keinginan sobat, lalu buat tabel dengan nama blog

CREATE TABLE `blog` (
  `blog_id` int(11) NOT NULL AUTO_INCREMENT,
  `subject` varchar(255) DEFAULT NULL,
  `description` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `update_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`blog_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

Langkah Keempat
Buat koneksi database dengan nama koneksi.php, lalu ketik code dibawah ini

<?php
$host="localhost";
$user="root";
$pass="";
mysql_connect($host,$user,$pass) or die("Error Connect DB ".mysql_error());
mysql_select_db("dbphp") or die("Database Tidak Ada. ".mysql_error());
?>

Langkah Kelima
Saya menggunakan bootsrap untuk tutorial ini , sebelum melakukan intruksi selanjutnya sobat download terlebih dahulu bootstrap disini, dan extract di folder root aplikasi sobat. Kemudian ikuti langkah dibawah ini.
Buat file dengan nama index.php, lalu ketik code dibawah ini

<!doctype html>
<html lang="en">
<head>
<title>Aguzrybudy.com | Mempercantik Link Dengan Httaccess</title>
<meta content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" name="viewport"/>
<meta content="Aguzrybudy" name="author"/>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>

<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.php">Aguzrybudy</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="index.html">Home</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#">Httaccess<span class="sr-only">(current)</span></a></li>
</ul>
</div>
</div>
</nav>

<div id="wrapper">
<div class="container">
<div class="jumbotron">
<h3>
Mempercantik Url CRUD (Create, Read, Update, Delete) Menggunakan Httaccess</h3>
<p>
By Aguzrybudy, Sabtu 23 April 2016</p>
<p>
<a href="#" class="btn btn-success">PHP 5.6</a></p>
</div>
</div>
<div class="container">
<div class="jumbotron">
<?php include "page.php";?>
</div>
</div>
</div>
</body>
</html>

Langkah Keenam
Buatlah file dengan nama page.php, kemudian ketik kode dibawah ini

<?php
error_reporting(0);

if($_GET['page'] == "home"){
 include"home.php";
}

elseif($_GET['page'] == "blog"){
 include"blog.php";
}

elseif($_GET['page'] == "addblog"){
 include"add_blog.php";
}

elseif($_GET['page'] == "saveblog"){
 include"save.php";
}

elseif($_GET['page'] == "readblog"){
 include"detailblog.php";
}

elseif($_GET['page'] == "editblog"){
 include"edit_form.php";
}

elseif($_GET['page'] == "update"){
 include"update.php";
}

elseif($_GET['page'] == "deleteblog"){
 include"delete_blog.php";
}

elseif($_GET['page'] == "about"){
 include"about.php";
}

elseif($_GET['page'] == "contact"){
 include"contact.php";
}

else{
 echo"Berhati-hatilah dalam menggunakan Httaccess";
}
?>

Langkah Ketujuh
Buatlah file dengan nama class_paging.php, kemudian ketik kode dibawah ini.

<?php
class paging_blog{

 function cariPosisi($batas){

  if(empty($_GET['page_blog'])){
   $posisi=0;
   $_GET['page_blog']=1;
  }
  else{
   $posisi = ($_GET['page_blog']-1) * $batas;
  }
   return $posisi;
  }

  // Fungsi untuk menghitung total halaman
  function jumlahHalaman($jmldata, $batas){
  $jmlhalaman = ceil($jmldata/$batas);
  return $jmlhalaman;
  }

  // Fungsi untuk link halaman 1,2,3 
  function navHalaman($halaman_aktif, $jmlhalaman){
  $link_halaman = "
<li></li>
";

  // Link ke halaman pertama (first) dan sebelumnya (prev)
  if($halaman_aktif > 1){
   $prev = $halaman_aktif-1;
   $link_halaman .= "
<li><a href=page_blog-1.html>First</a></li>
<li><a href=page_blog-$prev.html> Prev</a></li>
";
  }
  else{ 
   $link_halaman .= "
<li ><a href='#' aria-label='Previous'><span aria-hidden='true'>Prev</span></a></li>
";
  }

  // Link halaman 1,2,3, ...
  $angka = ($halaman_aktif > 3 ? "
<li><span aria-hidden='true'>...</span> " : " </li>
"); 
  for ($i=$halaman_aktif-2; $i<$halaman_aktif; $i++){
    if ($i < 1)
   continue;
     $angka .= "<li><a href=page_blog-$i.html>$i</a></li>
";
    }
     $angka .= "
<li class='active'><span aria-hidden='true'>$halaman_aktif</span></li>
";
   
  for($i=$halaman_aktif+1; $i<($halaman_aktif+3); $i++){
      if($i > $jmlhalaman)
        break;
     $angka .= "
<li><a href=page_blog-$i.html>$i</a></li>
";
      }
   $angka .= ($halaman_aktif+2<$jmlhalaman ? "
<li><span aria-hidden='true'>...</span><a  href=page_blog-$jmlhalaman.html>  $jmlhalaman</a>  " : " </li>
");
   $link_halaman .= "
<li>$angka</li>
";
   // Link ke halaman berikutnya (Next) dan terakhir (Last) 
   if($halaman_aktif < $jmlhalaman){
    $next = $halaman_aktif+1;
    $link_halaman .= "
    <li><a href=page_blog-$next.html>Next</a></li>
<li><a href=page_blog-$jmlhalaman.html>Last </a>
<li>";
}
else{
$prev = $halaman_aktif-1;
$link_halaman .= "
<li><a href='page_blog-$next.html' aria-label='Previous'><span aria-hidden='true'>Next</span></a></li>


";
}
return $link_halaman;
}
}
?>

Langkah Kedelapan
Buatlah file dengan nama home.php, kemudian ketik code dibawah ini.

<h3>Homepage</h3>

Langkah kesembilan
Buatlah file dengan nama blog.php, kemudian ketik kode dibawah ini.

<a href="addblog.html"  class="btn btn-primary">Add Blog</a>
<?php
include "koneksi.php";
include"class_paging.php";
$p   = new paging_blog;
$batas  = 5;
$posisi = $p->cariPosisi($batas);
$data_blog=mysql_query("SELECT * FROM blog 
ORDER BY blog_id DESC LIMIT  $posisi,$batas");
$no=1;
while($row=mysql_fetch_array($data_blog)){   
?>
<h4>
<?php echo $row['subject']; ?></h4>
<h5>
<?php echo $row['description']; ?></h5>
<h6>
<?php echo $row['created_at']; ?></h6>
<a href="Readblog@_@<?php echo $row['subject']; ?>.html"  class="btn btn-info">Read</a>
<a href="Editblog@_@<?php echo $row['subject']; ?>.html"  class="btn btn-warning">Edit</a>
<a href="deleteblog@_@<?php echo $row['subject']; ?>.html"  class="btn btn-danger">Delete</a>

<?php          
$no++;
} 
$jmldata     = mysql_num_rows(mysql_query("SELECT * FROM blog"));
$jmlhalaman  = $p->jumlahHalaman($jmldata, $batas);
$linkHalaman = $p->navHalaman($_GET['page_blog'], $jmlhalaman);
echo " 
<div class='pagination-wrap'>
<ul class='pagination'>
<li  class=''> $linkHalaman </li>
</ul>
</div>
"; 
?>

Langkah Kesepuluh
Buatlah file dengan nama add_blog.php, kemudian ketik code dibawah ini

<form  method="POST" action="save.html">

 <div class="form-group">

<label for="Subject">Subject</label>

  <input type="text" class="form-control" id="Subject" placeholder="Subject" name="subject">

 </div>

<div class="form-group">

<label for="Description">Description</label>

  <textarea class="form-control" id="Description" placeholder="Description" name="description"></textarea>

 </div>

<div class="form-group">

<label for="Date">Date</label>

  <input type="text" class="form-control" id="Date" placeholder="<?php echo date("F j, Y, g:i a") ;?>" name="date" disabled>

 </div>

<button type="submit" class="btn btn-primary">Save</button>

 <button type="reset" class="btn btn-danger">Reset</button>

</form> 

Langkah Kesebelas
Buatlah file dengan nama delete_blog.php, kemudian ketik kode dibawah ini
<?php 
include "koneksi.php";
$blog_id = $_GET['blog_id'];
$sql = mysql_query("Delete From blog where blog_id='$blog_id' or subject='$blog_id'");
?>

<div class="alert alert-success" role="alert">
<strong>Well done!</strong> You successfully Delete this Blog.
 <p>
untuk melihat hasilnya back dan refresh halaman oke </p>
</div>
<a href="#" onclick="self.history.back()" class="btn btn-info">Back</a>
 
Langkah Kedua Belas
Buatlah file dengan nama edit_form.php, kemudian ketik code dibawah ini

<?php

include "koneksi.php";

$blog_id = $_GET['blog_id'];

$sql = mysql_query("select * from blog where blog_id='$blog_id' or subject='$blog_id'");

while ($row = mysql_fetch_array($sql)){

?>

<form  action="update.html" method="POST">

<h4>

Contoh form edit menggunakan httaccess</h4>

<fieldset class="form-group">

<label for="Subject">Subject</label>

   <input type="hidden" class="form-control" id="blog_id" value="<?php echo $row['blog_id'];?>" name="blog_id">

   <input type="text" class="form-control" id="Subject" value="<?php echo $row['subject'];?>" name="subject">

  </fieldset>

<fieldset class="form-group">

<label for="Description">Description</label>

   <textarea class="form-control" id="Description" name="description"><?php echo $row['description'];?></textarea>

  </fieldset>

<fieldset class="form-group">

<label for="Date">Date</label>

   <input type="text" class="form-control" id="Date"  value="<?php echo $row['created_at'];?>" name="date" disabled>

  </fieldset>

<fieldset class="form-group">

<label for="Date"></label>

   <button type="submit" class="btn btn-success">Update</button>

   <button type="button" class="btn btn-danger" onclick="self.history.back()">Back</button>

  </fieldset>

</form>

<?php } ?>

Langkah Ketiga Belas
Buatlah file dengan nama detail_blog.php, kemudian ketik kode dibawah ini

<?php 
include "koneksi.php";
include"link_seo.php";
$getName = explode("/",$_SERVER['REQUEST_URI']);
$blog_id = $_GET['blog_id'];
$sql = mysql_query("select * from blog where blog_id='$blog_id' or subject='$blog_id'");
while ($row = mysql_fetch_array($sql)){
?>
<h3>
<?php echo $row['subject'];?></h3>
<p>
<?php echo $row['description'];?></p>
<p>
<h3>
<?php echo $row['date'];?></p>
<a href="#" onclick="self.history.back()" class="btn btn-info">Back</a>
<?php } ?>

Langkah Keempat Belas
Buatlah file dengan nama save.php, kemudain ketik kode dibawah ini

<div class="alert alert-info" role="alert">
 <strong>Perhatian!</strong> Untuk proses simpan datanya buat sendiri, dibawah ini data hasil dari input postnya..
</div>
<div class="container">
<p>
<?php echo $_POST['subject'];?></p>
<p>
<?php echo $_POST['description'];?></p>
<p>
<?php echo $_POST['date'];?></p>
</div>
<?php 
  include"koneksi.php";
  $subject = $_POST['subject'];
  $description = $_POST['description'];
  $save = mysql_query("INSERT INTO blog(subject,description) VALUES('$subject','$description')");
  if (!$save) {
 echo "Gagal",error_log($save);
  }else{
  header('location:blog.html');  
  }

?>
<a href="#" onclick="self.history.back()" class="btn btn-info">Back</a>

Langkah Keenam Belas
Buatlah file dengan nama update.php, kemudian ketik kode dibawah ini .

<div class="alert alert-info" role="alert">
 <strong>Perhatian!</strong> Untuk proses simpan updatenya buat sendiri, dibawah ini data hasil dari input postnya.
</div>
<div class="container">
<p>
<?php echo $_POST['subject'];?></p>
<p>
<?php echo $_POST['description'];?></p>
<p>
<?php echo $_POST['date'];?></p>
</div>
<?php
  include"koneksi.php";
  $subject = $_POST['subject'];
  $description = $_POST['description'];
  $update = mysql_query("UPDATE blog SET subject ='$subject',description='$description' WHERE blog_id ='$_POST[blog_id]'");
  if (!$update) {
 echo "Gagal",mysql_error();
  }else{
 header('location:blog.html');  
  }

?>

<a href="#" onclick="self.history.back()" class="btn btn-info">Back</a>

Langkah Ketujuh Belas
Buatlah file dengan nama about.php, kemudian ketik kode dibawah ini

<h3>
I am Web Developer & Blogger</h3>

Langkah Kesembilan Belas
Buatlah file dengan nama contact.php, kemudian ketik kode dibawah ini.

<h2>Aguzrybudy.blogspot.co.id</h2>

Dibawah merupakan screen picture hasil dari program diatas .







NB : Code diatas saya tulis di php 5.6

Sampai disini dulu tutorial dari saya , Semoga tutorial ini bermanfaat bagi sobat, atas segala kekuranganya mohon dimaafkan dan di beri saran untuk file PDF -NYA download disini dan jika sobat ingin code dari aplikasi diatas download disini.


Share
Hosting Unlimited Indonesia

agus ribudi

Programmer, Web Developer, Android Developer and Blogger

Post A Comment:

0 comments:

Rekomendasi Untuk Anda × +