menu

Showing posts with label php. Show all posts
Showing posts with label php. Show all posts

Engine - Install zeroMQ and binding PHP ZMQ (MAC OS)


Pada tutorial kali ini codedoct akan share pengalaman saat setup ZMQ di MAC OS, apa itu ZMQ? ZMQ merupakan sebuah library yang dirancang khusus untuk bertransfer data dengan performa tinggi secara asyncronus. Singkat kata ZMQ ini adalah library yang akan kita gunakan untuk mempush notifikasi/chat ke websocket melalui sebuah API (server-side).

Codedoct menggunakan XAMPP sebagai web server di komputer lokal.
Oke langsung saja kita setup ZMQ-nya,

Pertama install ZMQ terlebih dahulu dengan cara,
$ brew install zmq
Selanjutnya binding php-zmq
$ cd
$ git clone git://github.com/mkoppanen/php-zmq.git
$ cd php-zmq
$ phpize && ./configure
$ make && make install
Kemudian tambahkan extension zmq.so ke file php.ini yang ada di path /xamppfiles/etc/ seperti ini,
[PHP]
extension=zmq.so
;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;

Oke kita sudah membinding zmp ke php apache yang ada di local komputer tapi apakah pada CLI nya sudah? cek dengan cara buat sebuah file dengan nama phpinfo.php pada htdocs dan browse file tersebut pada browser sehingga akan muncul gambar seperti dibawah,


Coba cari "zmq", jika tidak ditemukan berarti zmq belum terinstall pada CLI, cara menginstallnya mudah, pada langkah diatas kita sudah membinding php-zmq masuk kembali ke folder home tempat menginstal zmq, di folder tersebut kita akan menemukan folder dengan nama php-zmq masuk ke folder modules dan copy file zmq.so,


Kemudian letakkan di path extension php CLI pada XAMPP, untuk mengetahui dimana letak path extension php CLI dapat dilakukan dengan cara browse kembali phpinfo.php dan cari "extension" sehingga akan tampak seperti ini,


Nah sekarang copy kan file zmq.so tadi ke path tersebut,


Terakhir coba refresh kembali halaman phpinfo.php, kemudian cari kembali "zmq" dan kita akan menemukannya, yang berarti ZMQ sudah berhasil terinstall dengan baik di php CLI.


===DONE!===

Website sederhana untuk pemula menggunakan PHP - migration database


Pada website ini saya sudah membagikan tutorial untuk php native, versi php yang saya gunakan pada tutorial itu adalah 5.6 dikarenakan saya akan melakukan migrasi ke php 7.0 maka saya akan mengakhiri tutorial untuk php native 5.6.

Tutorial kali ini merupakan tutorial terakhir dari project php yang sudah saya buat sebelumnya, tutorial kali ini untuk melengkapi tutorial sebelum-sebelumnya sehingga project php native (website sederhana untuk pemula menggunakan php) yang sudah saya buat sebelum-sebelumnya bisa tinggal anda clone dan langsung di jalankan,

Pada tutorial kali ini saya akan membuatkan function migration sehingga teman2 bisa langsung menjalankannya pada terminal untuk membuat database project ini secara otomatis

Oke langsung saja kita mulai tutorialnya,
Pertama, buat folder baru dengan nama database dan buat file baru dengan nama migration.php pada folder tersebut, isikan code berikut
<?php
  $host="localhost";
  $user="root";
  $pass="root";  

  $dbname = "blog_php_5_6";
  $tablename = "crud";

  $db=mysql_connect($host,$user,$pass);

  //create database if not exists
  $sql ="CREATE DATABASE IF NOT EXISTS `$dbname` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci";
  $message = mysql_query($sql,$db);
  if ($message) {
    print_r("Create database success.\n");
  }

  $sql="USE `$dbname`";
  $message = mysql_query($sql,$db);
  if ($message) {
    print_r("Choose database success.\n");
  }

  //create table if not exists
  $sql = "CREATE TABLE IF NOT EXISTS `$tablename` (
            id bigint( 20 ) AUTO_INCREMENT PRIMARY KEY,
            name varchar( 50 ) NOT NULL,
            email varchar( 150 ) NOT NULL, 
            address text( 150 ) NULL,
            created_at timestamp NULL,
            updated_at timestamp NULL
          );";
  $message = mysql_query($sql,$db);
  if (!$message) { 
    print_r(mysql_error($db)."\n");
  } else {
    print_r("Create table success.\n");
  }

  //add primary key
  $sql = "ALTER TABLE `$tablename` ADD PRIMARY KEY (`id`)";
  mysql_query($sql,$db);

  //add auto increment
  $sql = "ALTER TABLE `$tablename` MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT";
  mysql_query($sql,$db);
?>

Kemudian edit file koneksi.php
<?php
  $host="localhost";
  $user="root";
  $pass="root";
  $dbname="blog_php_5_6";

  $db=mysql_connect($host,$user,$pass);
  mysql_select_db($dbname,$db);
?>

Edit pula file Delete.php dan Update.php pada folder model
Delete.php
<?php
    $user_id  = $_GET["user_id"];
 $_id   = $_POST["id"];
 $_delete  = $_POST["dell"];
 $_name   = $_POST["name"];
 $_email   = $_POST["email"];
 $_address = $_POST["address"];

 if ($_delete) {
  if ($_id) {
   $sql="DELETE FROM crud WHERE id = '$_id'";
      mysql_query($sql,$db);
  }
     header("Location: http://localhost/BLOG/blog-php_5_6");
  die();
 }

 $sql="SELECT * FROM crud WHERE id='$user_id'";
 $hsl=mysql_query($sql,$db);
 list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl);
?>
Update.php
<?php
    $user_id  = $_GET["user_id"];
 $_id   = $_POST["id"];
 $_simpan  = $_POST["simpan"];
 $_name   = $_POST["name"];
 $_email   = $_POST["email"];
 $_address = $_POST["address"];

 if ($_simpan) {
  if ($_id) {
   $sql="UPDATE crud SET
   name = '$_name',
   email = '$_email',
   address = '$_address',
   updated_at = NOW()
         WHERE id = '$_id'";
      mysql_query($sql,$db);
  }
     header("Location: http://localhost/BLOG/blog-php_5_6");
  die();
 }

 $sql="SELECT * FROM crud WHERE id='$user_id'";
 $hsl=mysql_query($sql,$db);
 list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl);
?>

Terakhir edit file read.php pada folder view/crud/ dan file header.php pada folder view/master
read.php
<!-- custom css -->
<link rel="stylesheet" href="styles/style.css">
<!--  -->
<!-- model -->
<?php include_once "model/Read.php" ?>
<!--  -->
<!-- content -->
<?php include_once "view/master/header.php" ?>
<div class="content">
  <div class="fill">
   <table border="1px";>
 <tr>
  <th>No</th>
  <th>Name</th>
  <th>Email</th>
  <th>Address</th>
  <th>Created At</th>
  <th>Updated At</th>
  <th>Action</th>
 </tr>
 <?php
  $sql="SELECT * FROM crud";
  $hsl=mysql_query($sql,$db);
  $no=0;
  while(list($id,$name,$email,$address,$created_at,$updated_at)=mysql_fetch_array($hsl)){
   $no++;
   ?>
     <tr>
      <td><?=$no?></td>
      <td><?=$name?></td>
      <td><?=$email?></td>
      <td><?=$address?></td>
      <td><?=$created_at?></td>
      <td><?=$updated_at?></td>
      <td>
       <a href="view/crud/update.php?user_id=<?=$id?>">Edit</a> ||
       <a href="view/crud/delete.php?user_id=<?=$id?>">Delete</a>
      </td>
     </tr>
      <?php
  }
 ?>
 </table>
 <br>
 <button class="button_def" onclick='window.location="view/crud/create.php"'>Create</button>
  </div>
</div>
<?php include_once "view/master/footer.php" ?>
header.php
<div class="main_image">
 <div class="header_content">
  <li><a href="http://localhost/BLOG/blog-php_5_6">Home</a></li>
 </div>
</div>

===DONE!===

Engine PHP - Upload image beauty code


Pada tutorial sebalumnya kita sudah membuat sebuah engine upload image dengan menggunakan bahasa native PHP tanpa menggunakan class dan function method. Tutorial kali ini kita akan membuat engine yang sama tapi dengan code yang lebih rapi dan terstruktur.

Oke kita mulai saja tutorialnya,
Pertama, buat folder projectnya terlebih dahulu beri nama misal class_method, kemudian buat file index.php pada folder project tersebut dan isikan code berikut,
<form action="save.php" method="post" enctype="multipart/form-data">
    <table width="100%">
        <tr>
            <td><input type="file" name="image"/></td>
        </tr>
        <tr>
            <td>Note: Supported image format: .jpeg, .jpg, .png</td>
        </tr>
    </table>
    <br>
    <input type="submit" value="Save"/>
</form>

Selanjutnya buat file baru dengan nama save.php dan isikan code berikut,
<?php
 Class SaveImage
 {
  public function extensions()
  {
   $extensions = array("jpeg","jpg","png");
   return $extensions;
  }

  public function save()
  {
   $file_name  = $_FILES['image']['name'];
   $file_size  = $_FILES['image']['size'];
   $file_tmp  = $_FILES['image']['tmp_name'];
   $file_ext = strtolower(end(explode('.',$_FILES['image']['name'])));
   $filename  = strtotime('now').'_'.$file_name;
   $error   = '';
   
   if(in_array($file_ext, $this->extensions())=== false){
    $error="extension not allowed, please choose a JPEG or PNG file.";
   }

   if($file_size > 1024000){
    if ($error) {
     $error=$error.' and File size must be excately 1 MB';
    } else {
     $error='File size must be excately 1 MB';
    }
   }

   if(empty($error)==true){
    move_uploaded_file($file_tmp,"images/".$filename);
    $response['status']  = 'Success';
    $response['results'] = $filename;
    return $response;
   }else{
    $response['status']  = 'Error';
    $response['results'] = $error;
    return $response;
   }
  }
 }

 if(isset($_FILES['image'])){
  $save_image = new SaveImage;
  $save = $save_image->save();
  foreach ($save as $key => $value) {
   echo $key.': '.$value.'<br>';
  }
  ?><br><a href="/test/test-upload_image">Back</a><?php
    }
?>

Terakhir buat folder tempat menyimpan image, beri nama folder dengan nama images, sehingga struktur file dan folder akan tampak seperti ini,


Dan tampilan urlnya saat kita akses akan tampak seperti ini,


Terlihat lebih rapi kan dibanding yang native? inilah seni dalam coding..

===DONE!===

Engine PHP - Upload image native code


Kembali lagi membuat engine PHP,

Pada tutorial kali ini kita akan membuat sebuah engine yang digunakan untuk upload image ke sebuah folder menggunakan native codenya php yang bisa dibilang code dasar.

Oke, langsung saja kita mulai tutorialnya,
Pertama, buat folder projectnya pada folder yang bisa diakses url localhost, dalam hal ini codedoct menggunakan OS windows dan server localhost XAMPP, misal kita beri nama project tersebut dengan nama test-upload_image.

Pada folder project tersebut kita buat file baru bernama index.php dan isikan code berikut,
<form action="save.php" method="post" enctype="multipart/form-data">
    <table width="100%">
        <tr>
            <td><input type="file" name="image"/></td>
        </tr>
        <tr>
            <td>Note: Supported image format: .jpeg, .jpg, .png</td>
        </tr>
    </table>
    <br>
    <input type="submit" value="Save"/>
</form>

Selanjutnya pada folder project tersebut kita buat juga file baru bernama save.php dan isikan code berikut,
<?php
 if(isset($_FILES['image'])){
  $errors  = array();
  $file_name  = $_FILES['image']['name'];
  $file_size  = $_FILES['image']['size'];
  $file_tmp  = $_FILES['image']['tmp_name'];
  $file_ext = strtolower(end(explode('.',$_FILES['image']['name'])));

  $extensions = array("jpeg","jpg","png");

  if(in_array($file_ext,$extensions)=== false){
   $errors[]="extension not allowed, please choose a JPEG or PNG file.";
  }

  if($file_size > 1024000){
   $errors[]='File size must be excately 1 MB';
  }

  if(empty($errors)==true){
   $filename = strtotime('now').'_'.$file_name;
   move_uploaded_file($file_tmp,"images/".$filename);
   echo "Success";
   ?><br><a href="/test/test-upload_image">Back</a><?php
  }else{
   print_r($errors);
   ?><br><a href="/test/test-upload_image">Back</a><?php
  }
    }
?>

Terakhir buat folder baru tempat meletakkan image yang diupload beri nama folder dengan nama images, sehingga struktur filenya akan tampak seperti ini,


Dan tampilan urlnya saat kita akses akan tampak seperti ini,


Untuk code yang versi rapinya menggunakan class dan function method lihat disini.

===DONE!===

Syntax - Syntax php


Artikel kali ini akan membahas beberapa syntax yang sering digunakan dalam programming PHP.

Tag And comment
===> tag php
<?php ?>

<?php

//===> comment one line
// content comment

//===> comment multi line
/*  
 content comment
 content comment
*/

Display
//===> show string
echo "content string";

//===> show integer
echo 21;

//===> show variabel
echo $variabel;

//===> mix variabel and string
echo "test ".$variabel." test2";

Array
here

Loop
//===> for
for ($i = 2; $i < 11; $i = $i + 2) {
  echo $i;
}
output:
246810

//===> foreach
$sentence = array("Im ", "learning ", "PHP!");        
foreach($sentence as $word) {
  echo $word;
}
output:
Im learning PHP!

//===> while
$loopCond = true;
while ($loopCond){
 echo "<p>The loop is running.<p>";
 $loopCond = false;
}
output:
The loop is running.
//other example
$i=0;
while($i<5){
    echo $i;
    $i++;
}
output:
01234
//with other way
$i=0;
while($i<5):
    echo $i;
    $i++;
endwhile;
output:
01234

//===> do while
$loopCond = false;
do {
 echo "<p>The loop ran even though the loop condition is false.</p>";
} while ($loopCond);
output:
The loop ran even though the loop condition is false.

Library
//===> length
$length = strlen("sayah");
echo $length;
output:
5

//===> partial, uppercase, lowercase
$myname = "Dark King";

$partial = substr($myname, 1, 3);
print $partial;

$uppercase = strtoupper($myname);
print $uppercase;

$lowercase = strtolower($myname);
print $lowercase;

output:
ark
DARK KING
dark king

//===> find position
$myname = "Dark King";
echo strpos($myname, "i");
output:
6

//===> round(pembulatan)
$round = round(M_PI);
print $round;

$round = round(M_PI, 3);
print $round;
output:
3
3.142

//===> rand(random number between)
 print rand(1, 10);

$name = "Dark King";
echo $name[rand(0, strlen($name)-1)];
output:
4
n

//===> length string
$name = "Dark King";
echo strlen($name);
output:
9

Function
//===> play with function
function greetings($name){
    echo "Greetings, " . $name . "!";
}

greetings("Dark King");
output:
Greetings, Dark King!

//===> class
// The code below creates the class
class Person {
    // Creating some properties (variables tied to an object)
    public $isAlive = true;
    public $firstname;
    public $lastname;
    public $age;
    
    // Assigning the values
    public function __construct($firstname, $lastname, $age) {
      $this->firstname = $firstname;
      $this->lastname = $lastname;
      $this->age = $age;
    }
    
    // Creating a method (function tied to an object)
    public function greet() {
      return "Hello, my name is " . $this->firstname . " " . $this->lastname . ". Nice to meet you! :-)";
    }
  }
  
// Creating a new person called "boring 12345", who is 12345 years old ;-)
$me = new Person('Dark', 'King', 12345);

// Printing out, what the greet method returns
echo $me->greet(); 
output:
Hello, my name is Dark King Nice to meet you!

//===> other example class
class Dog{
    public $numLegs = 4;
    public $name;
    
    public function __construct($name){
        $this->name = $name;    
    }
    
    public function bark(){
        return "Woof!";   
    }
    
    public function greet(){
        return "My name is ".$this->name;    
    }
}

$dog1 = new Dog("Barker");
$dog2 = new Dog("Amigo");

echo $dog1->bark();
echo $dog2->greet();
output:
Woof! My name is Amigo

//===> cheking class
class Person {
  public $isAlive = true;
  
  function __construct($name) {
      $this->name = $name;
  }
  
  public function dance() {
    return "I'm dancing!";
  }
}

$me = new Person("Shane");
if (is_a($me, "Person")) {
  echo "I'm a person, ";
}
if (property_exists($me, "name")) {
  echo "I have a name, ";
}
if (method_exists($me, "dance")) {
  echo "and I know how to dance!";
}
output:
I m a person, I have a name, and I know how to dance!

//===> cheking class
class Shape {
  public $hasSides = true;
}
class Square extends Shape {

}
$square = new Square();
if (property_exists($square, 'hasSides')) {
  echo "I have sides!";
}
output:
I have sides!

//===> overide class / extends
class Vehicle {
  public function honk() {
    return "HONK HONK!";
  }
}
class Bicycle extends Vehicle {
   public function honk() {
      return "Beep beep!";   
   }
}
$bicycle = new Bicycle();
echo $bicycle->honk();
output:
Beep beep!

//===> call const
class Ninja extends Person {
  const stealth = "MAXIMUM";
}
echo Ninja::stealth;
output:
MAXIMUM

//===> const
class King {
  public static function proclaim() {
    echo "A kingly proclamation!";
  }
}
King::proclaim()
output:
A kingly proclamation!

Engine - Create graph or chart


Hello everyone,,

Tutorial kali ini codedoct akan membagikan cara membuat grafik / chart menggunakan highcharts pada php.

Grafik atau chart ini sangat berguna pada pada setiap perusahaan untuk menampilkan data statistik dari pertumbuhan database suatu perusahaan.

Oke langsung saja kita buat grafik / chart nya,

Berikut codenya,
<?php
 //you can change this data with your database
 $datas = array(
  array(
   'gender' => 'Laki-laki',
   'jumlah' => '123'
  ),
  array(
   'gender' => 'Perempuan',
   'jumlah' => '321'
  )
 );
?>
<html>
 <head>
  <title>Grafik | Chart</title>
  <script type="text/javascript" src="extension/jquery.min.js"></script>
  <script type="text/javascript" src="extension/highcharts.js"></script>
  <script type="text/javascript">
   $(function(){
     showChart();
   });

   function showChart()
   {
     var chart1; // globally available
     $(document).ready(function() {
       chart1 = new Highcharts.Chart({
          chart: {
             renderTo: 'chart',
             type: 'column'
          },   
          title: {
             text: 'Grafik Jumlah Penduduk'
          },
          xAxis: {
             categories: ['Gender']
          },
          yAxis: {
             title: {
                text: 'Jumlah Penduduk'
             }
          },
               series:             
             [
              //i'am use data array
               <?php foreach ($datas as $data) { ?>
        {
          name: '<?=$data['gender']?>',
          data: [<?=$data['jumlah']?>]
        },
      <?php } ?>
             ]
       });
     });
   }
  </script>
 </head>
 <body>
  <button onclick="showChart(this)" type="button">test</button>
  <div id="chart"></div>
 </body>
</html>

Dan hasilnya akan tampak seperti ini,


Jika butuh file extensionnya silahkan download langsung full codenya disini,

===DONE!===

Engine PHP - Pagination


Setelah pada tutorial sebelumnya, kita sudah membuat Paginasi dengan menggunakan Laravel, Tutorial kali ini akan membahas tentang membuat Paginasi menggunakan jQuery, tentu saja Paginasi yang akan dihasilkan menggunakan jQuery ini akan jauh lebih bagus karena Paginasi menggunakan jQuery ini tidak membutuhkan reload URL.

Oke langsung saja kita buat enginenya,

Buat sebuah file PHP dan masukkan code berikut,
<style>
 li.content{
  list-style: none;
  border: 1px solid #ddd;
  padding: 8px;
  width: 100px;
  display: inline-block;
 }
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
 //paginate
 $(function(){
  showPage(1);
 });
 function prevPage(button)
 {
  var max_page = $('.list-content').find('input[name=max_page]').val();
  var pages = $('.list-content').find('.prev').data('pages');
  var page_show = pages - 1;
  $('.list-content').find('.prev').data('pages', page_show);
  $('.list-content').find('.next').data('pages', page_show);
  $('.list-content').find('span.current-page').html(page_show);
  if (page_show == 1) {
   $(button).prop('disabled', true);
  }
  if (page_show < max_page) {
   $('.list-content').find('.next').prop('disabled', false);
  }
  showPage(page_show);
 }
 function nextPage(button)
 {
  var max_page = $('.list-content').find('input[name=max_page]').val();
  var pages = $('.list-content').find('.next').data('pages');
  var page_show = pages + 1;
  $('.list-content').find('.next').data('pages', page_show);
  $('.list-content').find('.prev').prop('disabled', false);
  $('.list-content').find('.prev').data('pages', page_show);
  $('.list-content').find('span.current-page').html(page_show);
  if (page_show==max_page) {
   $(button).prop('disabled', true);
  }
  showPage(page_show);
 }
 function showPage(page)
 {
  var max_page = $('.list-content').find('input[name=max_page]').val();
  pageSize = 4;
  $(".list-content").find('.content').hide();
     $(".list-content").find('.content').each(function(n) {
         if (n >= pageSize * (page - 1) && n < pageSize * page)
             $(this).show();
     });
     if (max_page==1) {
   $('.list-content').find('.next').prop('disabled', true);
     };
 }
 //end paginate
</script>
<?php
 $buah = array(
  '0' => array(
   'name' => 'jeruk',
   'warna' => 'orange',
  ),
  '1' => array(
   'name' => 'apel',
   'warna' => 'merah',
  ),
  '2' => array(
   'name' => 'anggur',
   'warna' => 'ungu',
  ),
  '3' => array(
   'name' => 'durian',
   'warna' => 'kuning',
  ),
  '4' => array(
   'name' => 'jambu',
   'warna' => 'hijau',
  ),
  '5' => array(
   'name' => 'melon',
   'warna' => 'hijau',
  ),
  '6' => array(
   'name' => 'semangka',
   'warna' => 'hijau',
  ),
  '7' => array(
   'name' => 'nanas',
   'warna' => 'kuning',
  ),
  '8' => array(
   'name' => 'manggis',
   'warna' => 'ungu',
  ),
 );

 //paginate 4/page
 $total_buah = count($buah);
 $whole = $total_buah/4;
 if (is_integer($whole)) {
  $floor = floor($whole);
  $max_page = $floor;
 } else {
  $floor = floor($whole);
  $max_page = $floor + 1;
 }
?>

<div class="list-content">
 <input type="hidden" name="max_page" value="<?=$max_page;?>">
 <?php foreach ($buah as $info_buah) { ?>
  <li class="content">
   <?=$info_buah['name'].'<br>'.$info_buah['warna'];?>
  </li>
 <?php } ?>
 <br>
 <br>
 <br>
 <div class="paginate text-center">
  <button type="button" disabled onclick="prevPage(this)" data-pages="" class="prev">Prev</button> | <span class="current-page">1</span> of <?=$max_page;?> | <button type="button" onclick="nextPage(this)" data-pages="1" class="next">Next</button>
 </div>
</div>


Kemudian buka url file tersebut di localhost(untuk membuka url file diperlukan akses internet karena engine menggunakan script jQuery yang di load dari internet).

Sehingga hasilnya akan tampak seperti ini,


===DONE!!!===

Engine PHP - Create txt file


Pada tutorial kali ini kita akan belajar membuat sebuah file .txt dari php, biasanya file .txt ini sering kali digunakan saat kita akan membuat sebuah sistem crontab yang membutuhkan data log dari proses crontab tersebut.

Data log ini biasanya disimpan pada file .txt agar suatu saat nanti jika terjadi error pada crontab yang menyebabkan proses crontab terhenti kita bisa tahu sampai diproses mana crontab tersebut terhenti, sehingga kita bisa mengidentifikasi penyebab berhentinya crontab dan dapat melanjutkan kembali proses crontab tersebut dari posisi dia berhenti sebelumnya.

Berikut syntax-syntax membuat file .txt,
//akses file yang akan dipakai
$myfile = fopen("/path/file/name_file.txt", "a") or die("Unable to open file!");
//write text
$txt = "------------test-----------";
fwrite($myfile, $txt);
//close file
fclose($myfile);

Aturan akses file bisa dilihat disini.
Tutorial ini adalah penyempurnaan dari tutorila sebelumnya tentang Move database field to other database.

Oke langsung saja kita praktekan tutorialnya.

Pertama buka file movedatabaselog.php yang sudah dibuat pada tutorial sebelumnya, edit menjadi seperti ini.
<?php
  $host="localhost";
  $user="root";
  $pass="root";  

  $dbname1 = "source_logs";
  $dbname2 = "backup_logs";

  $db=mysql_connect($host,$user,$pass);
  
  $sql2="USE $dbname2";
  mysql_query($sql2,$db);

  //create logs processing--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  $myfile = fopen("/var/www/html/crontab/log_processing.txt", "a") or die("Unable to open file!");
  $date=strtotime("now");
  $enddate = strtotime("-7 days", $date);
  //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  //cek any databse or not?
  $sql = "SELECT * FROM user_logs";
  $hsl1 = mysql_query($sql,$db);
  if (!$hsl1) {
    //create database if not exists
    $sql4 ="CREATE DATABASE IF NOT EXISTS `backup_FE` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci";
    mysql_query($sql4,$db);

    $txt = "Database was create \n";
    fwrite($myfile, $txt);

    $sql2="USE $dbname2";
    mysql_query($sql2,$db);

    //create table if not exists
    $sql4 = "CREATE TABLE IF NOT EXISTS `user_logs` (
              `id` bigint(20) NOT NULL,
              `user_id` bigint(20) DEFAULT NULL,
              `type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `request_method` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `url` text COLLATE utf8_unicode_ci,
              `parameter_json` text COLLATE utf8_unicode_ci,
              `status` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `logable_id` int(11) DEFAULT NULL,
              `logable_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `ip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `device_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `device` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `platform` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `platform_version` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `browser` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `browser_version` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `app_version` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `android` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `ios` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
              `duration` decimal(10,4) DEFAULT NULL,
              `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
              `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
              `deleted_at` timestamp NULL DEFAULT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
    mysql_query($sql4,$db);

    //add primary key
    $sql4 = "ALTER TABLE `user_logs` ADD PRIMARY KEY (`id`)";
    mysql_query($sql4,$db);

    //add auto increment
    $sql4 = "ALTER TABLE `user_logs` MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT";
    mysql_query($sql4,$db);

    $txt = "Table was create \n";
    fwrite($myfile, $txt);
  }

  //begin backup
  $sql = "SELECT * FROM user_logs";
  $hsl2 = mysql_query($sql,$db);
  $array2 = mysql_fetch_array($hsl2);
  if (!$array2) {
    //if empty field on database insert this

    $txt = "first insert on ".date("Y-m-d h:i:sa", $date)."\n";
    fwrite($myfile, $txt);
 
    $sql2="USE $dbname2";
    mysql_query($sql2,$db);
    
    $sql2="INSERT INTO user_logs (user_id,type,request_method,url,parameter_json,status,logable_id,logable_type,ip,device_type,device,platform,platform_version,browser,browser_version,app_version,android,ios,duration,created_at,updated_at,deleted_at) ";
    $sql2.="(SELECT user_id,type,request_method,url,parameter_json,status,logable_id,logable_type,ip,device_type,device,platform,platform_version,browser,browser_version,app_version,android,ios,duration,created_at,updated_at,deleted_at "; 
    $sql2.="FROM $dbname1.user_logs)";
    mysql_query($sql2,$db);

    $txt = "user_logs insert first DONE! at \n".$date;
    fwrite($myfile, $txt);
  } elseif ($array2) {
    //if database was insert before so insert this

    $txt = "backup from ".date("Y-m-d h:i:sa", $date)." until ".date("Y-m-d h:i:sa", $enddate)."\n";
    fwrite($myfile, $txt);

    $sql2="USE $dbname2";
    mysql_query($sql2,$db);
    
    $sql2="INSERT INTO user_logs (user_id,type,request_method,url,parameter_json,status,logable_id,logable_type,ip,device_type,device,platform,platform_version,browser,browser_version,app_version,android,ios,duration,created_at,updated_at,deleted_at) ";
    $sql2.="(SELECT user_id,type,request_method,url,parameter_json,status,logable_id,logable_type,ip,device_type,device,platform,platform_version,browser,browser_version,app_version,android,ios,duration,created_at,updated_at,deleted_at "; 
    $sql2.="FROM $dbname1.user_logs WHERE created_at > (SELECT created_at FROM $dbname2.user_logs ORDER BY created_at DESC LIMIT 1))";
    mysql_query($sql2,$db);

    $txt = "\n user_logs backup DONE! \n";
    fwrite($myfile, $txt);

    //delete logs that are not used anymore
    $sql3="USE $dbname1";
    mysql_query($sql3,$db);
    $sql3="DELETE FROM user_logs WHERE created_at < DATE_ADD(CURDATE(), INTERVAL -6 DAY)";
    mysql_query($sql3,$db);

    $txt = "delete user_logs source DONE! \n";
    fwrite($myfile, $txt); 

    $txt = "----------------------------------------- \n";
    fwrite($myfile, $txt);
    fclose($myfile);
  }
?>

Kemudian jalankan file tersebut pada terminal Ubuntu seperti ini.
php /var/www/html/crontab/movedatabaselog.php

Sehingga program tersebut akan secara otomatis membuat file log_processing.txt pada path /var/www/html/crontab/ yang berisi log dari proses menjalankan program tersebut.

Jika anda ingin menjalankannya pada crontab bisa lihat disini.

===DONE!===

Website sederhana untuk pemula menggunakan PHP - CRUD (delete)


Kembali lagi posting,,,

Melanjutkan tutorial yang sebelumnya tentang update(CRUD), kali ini saya akan membuat sistem yang terakhir dari CRUD yaitu delete.

Fungsi dari sistem ini adalah untuk menghapus field pada kolom tabel yang diinginkan.

Sama seperti update pada delete kita juga memerlukan id dari data yang ingin kita delete, id ini kita lempar dengan metode submit kemudia dijadikan sebagai condition saat akan menghapus field database.

Sebelum menerapkan tutorial ini pastikan anda sudah mengikuti tutorial sebelum-sebelumya hingga tuntas terlebih dahulu.

Oke langsung saja kita mulai tutorialnya.

Pertama, kita edit dulu file read pada path view/crud/read.php menjadi seperti ini
<!-- custom css -->
<link rel="stylesheet" href="styles/style.css">
<!--  -->
<!-- model -->
<?php include_once "model/Read.php" ?>
<!--  -->
<!-- content -->
<?php include_once "view/master/header.php" ?>
<div class="content">
  <div class="fill">
   <table border="1px";>
 <tr>
  <th>No</th>
  <th>Name</th>
  <th>Email</th>
  <th>Address</th>
  <th>Created At</th>
  <th>Updated At</th>
  <th>Action</th>
 </tr>
 <?php
  $sql="SELECT * FROM crud";
  $hsl=mysql_query($sql,$db);
  $no=0;
  while(list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl)){
   $no++;
   ?>
     <tr>
      <td><?=$no?></td>
      <td><?=$name?></td>
      <td><?=$email?></td>
      <td><?=$address?></td>
      <td><?=$created_at?></td>
      <td><?=$updated_at?></td>
      <td>
       <a href="view/crud/update.php?user_id=<?=$id?>">Edit</a> ||
       <a href="view/crud/delete.php?user_id=<?=$id?>">Delete</a>
      </td>
     </tr>
      <?php
  }
 ?>
 </table>
 <br>
 <button class="button_def" onclick='window.location="view/crud/create.php"'>Create</button>
  </div>
</div>
<?php include_once "view/master/footer.php" ?>

Selanjutnya buat file baru delete.php pada path view/crud/delete.php sehingga strukturnya akan menjadi seperti ini


Isi file delete.php dengan code berikut
<!-- custom css -->
<link rel="stylesheet" href="../../styles/style.css">
<!--  -->
<!-- header -->
<?php include_once "../../_header.php" ?>
<?php include_once "../master/header.php" ?>
<!--  -->
<!-- content -->
<div class="content">
  <div class="fill">
   <?php include_once "../../model/Delete.php" ?>
   <form method="POST" action="">
  <table>
   <tr>
    <input type="hidden" name="id" id="id" value="<?=$id?>" required></td>
   </tr>
   <tr>
    <td>Name</td><td>:</td><td><input type="text" name="name" id="name" value="<?=$name?>" required></td>
   </tr>
   <tr>
    <td>Email</td><td>:</td><td><input type="text" name="email" id="email" value="<?=$email?>" required></td>
   </tr>
   <tr>
    <td>Address</td><td>:</td><td><textarea style="width:100%" type="text" name="address" id="address" value="<?=$address?>" required><?=$address?></textarea></td>
   </tr>
   <tr><td></td><td></td><td><input type="submit" value="Delete" name="dell" id="dell"></td></tr>
  </table>
 </form>
  </div>
</div>
<!--  -->
<!-- footer -->
<?php include_once "../master/footer.php" ?>
<?php include_once "../../_footer.php" ?>
<!--  -->

Edit model Update.php pada path model/Update.php menjadi seperti ini
<?php
    $user_id  = $_GET["user_id"];
    $_id   = $_POST["id"];
    $_simpan  = $_POST["simpan"];
    $_name   = $_POST["name"];
    $_email   = $_POST["email"];
    $_address = $_POST["address"];

 if ($_simpan) {
  if ($_id) {
   $sql="UPDATE crud SET
   name = '$_name',
   email = '$_email',
   address = '$_address',
   updated_at = NOW()
         WHERE id = '$_id'";
      mysql_query($sql,$db);
  }
     header("Location: http://localhost/blog/webcoboy/");
  die();
 }

 $sql="SELECT * FROM crud WHERE id='$user_id'";
 $hsl=mysql_query($sql,$db);
 list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl);
?>
pada code tersebut kita menambahkan code header(Location) ini digunakan untuk redirect kehalaman home setelah update data.

Edit pula  model Read.php menjadi seperti ini
<?php
 $sql="SELECT * FROM crud";
 $hsl=mysql_query($sql,$db);
 $no=0;
?>
Terlihat code lebih sedikit karena saya pindahkan code ke file read.php pada path view/crud/read.php

Kemudian kita buat model baru yaitu Delete.php pada path model/Delete.php sehingga strukturnya akan menjadi seperti ini


Isi file Delete.php dengan code berikut
<?php
    $user_id  = $_GET["user_id"];
    $_id   = $_POST["id"];
    $_delete  = $_POST["dell"];
    $_name   = $_POST["name"];
    $_email   = $_POST["email"];
    $_address = $_POST["address"];

 if ($_delete) {
  if ($_id) {
   $sql="DELETE FROM crud WHERE id = '$_id'";
      mysql_query($sql,$db);
  }
     header("Location: http://localhost/blog/webcoboy/");
  die();
 }

 $sql="SELECT * FROM crud WHERE id='$user_id'";
 $hsl=mysql_query($sql,$db);
 list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl);
?>

Tampilan dari Delete akan terlihat seperti ini


===DONE!!!===

Website sederhana untuk pemula menggunakan PHP - CRUD (update)


Setelah pada tutorial sebelumnya kita sudah membuat sebuah sistem create pada database, pada tutorial kali ini kita akan membuat sebuah sistem update pada database.

Sistem ini berguna untuk mengubah data pada database kita jika pada pemasukkan database pertama terjadi kesalahan entry data.

Untuk dapat menerapkan tutorial ini diwajibkan untuk menerapkan tutorial sebelumnya terlebih dahulu sampai sukses.

Pastikan koneksi database sudah benar jika belum silahkan lihat kembali tutorial sebelumnya disini

Oke langsung saja kita mulai tutorialnya.

Pertama kita edit terlebih dahulu file model/Read.php menjadi seperti ini.
<table border="1px";>
 <tr>
  <th>No</th>
  <th>Name</th>
  <th>Email</th>
  <th>Address</th>
  <th>Created At</th>
  <th>Updated At</th>
  <th>Action</th>
 </tr>
<?php
 $sql="SELECT * FROM crud";
 $hsl=mysql_query($sql,$db);
 $no=0;
 while(list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl)){
  $no++;
  ?>
    <tr>
     <td><?=$no?></td>
     <td><?=$name?></td>
     <td><?=$email?></td>
     <td><?=$address?></td>
     <td><?=$created_at?></td>
     <td><?=$updated_at?></td>
     <td><a href="view/crud/update.php?user_id=<?=$id?>">Edit</a></td>
    </tr>
     <?php
 }
?>
</table>
<br>
<button class="button_def" onclick='window.location="view/crud/create.php"'>Create</button>

Selanjutnya buat file baru dengan nama update.php pada path view/crud/update.php

Isi dengan Code berikut.
<!-- custom css -->
<link rel="stylesheet" href="../../styles/style.css">
<!--  -->
<!-- header -->
<?php include_once "../../_header.php" ?>
<?php include_once "../master/header.php" ?>
<!--  -->
<!-- content -->
<div class="content">
  <div class="fill">
   <?php include_once "../../model/Update.php" ?>
   <form method="POST" action="">
  <table>
   <tr>
    <input type="hidden" name="id" id="id" value="<?=$id?>" required></td>
   </tr>
   <tr>
    <td>Name</td><td>:</td><td><input type="text" name="name" id="name" value="<?=$name?>" required></td>
   </tr>
   <tr>
    <td>Email</td><td>:</td><td><input type="text" name="email" id="email" value="<?=$email?>" required></td>
   </tr>
   <tr>
    <td>Address</td><td>:</td><td><textarea style="width:100%" type="text" name="address" id="address" value="<?=$address?>" required><?=$address?></textarea></td>
   </tr>
   <tr><td></td><td></td><td><input type="submit" value="Save" name="simpan" id="simpan"></td></tr>
  </table>
 </form>
  </div>
</div>
<!--  -->
<!-- footer -->
<?php include_once "../master/footer.php" ?>
<?php include_once "../../_footer.php" ?>
<!--  -->

Kemudian buat juga file model baru dengan nama Update.php pada path model/Update.php


Isi dengan Code berikut.
<?php
 $user_id  = $_GET["user_id"];
 $_id   = $_POST["id"];
 $_simpan  = $_POST["simpan"];
 $_name   = $_POST["name"];
 $_email   = $_POST["email"];
 $_address = $_POST["address"];

 if ($_simpan) {
  $sql="UPDATE crud SET
  name = '$_name',
  email = '$_email',
  address = '$_address',
  updated_at = NOW()
  WHERE id = '$_id'";
  mysql_query($sql,$db);
 }

 $sql="SELECT * FROM crud WHERE id='$user_id'";
 $hsl=mysql_query($sql,$db);
 list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl);
?>

Sehingga hasilnya akan tampak seperti ini.


===DONE!===

Website sederhana untuk pemula menggunakan PHP - CRUD (create)


Setelah sibuk merombak total tampilan website sekarang saatnya kembali coding..

Kali ini saya akan melanjutkan tutorial sebelumnya tentang membuat website sederhana untuk pemula dengan menggunakan php - CRUD (read).

Pada tutorial kemarin kita sudah membuat sebuah sistem read database sekarang saatnya kita membuat sistem create pada database.

Sistem create ini bertujuan untuk menambah isi database dengan data yang baru.

Sebelum melanjutkan tuturial ini pastikan koneksi database sudah benar jika belum silahkan koneksikan dulu lihat disini.

Oke langsung saja berikut tutorialnya.

Pertama kita ubah dulu sedikit struktur folder kita,
Buat folder baru pada path view dengan nama crud dan pindah kan file crud.php kedalam folder crud tersebut. Selanjutnya ubah nama file crud.php menjadi read.php, dan ubah nama model/read.php menjadi Read.php sehingga struktur folder akan tampak seperti ini.


Kemudian edit isi file index.php menjadi seperti ini.
<?php include_once "_header.php" ?>
<?php include_once "view/crud/read.php" ?>
<?php include_once "_footer.php" ?>

Edit isi file view/crud/read.php menjadi seperti ini.
<!-- custom css -->
<link rel="stylesheet" href="styles/style.css">
<!--  -->
<?php include_once "view/master/header.php" ?>
<div class="content">
  <div class="fill">
   <?php include_once "model/Read.php" ?>
  </div>
</div>
<?php include_once "view/master/footer.php" ?>

Edit juga isi file _header.php menjadi seperti ini
<?php include_once "koneksi.php" ?>
<!DOCTYPE html>
<html>
  <head>
    <title>Webcoboy</title>
  </head>
  <body>

Dan edit pula isi file model/Read.php menjadi seperti ini.
<table border="1px";>
 <tr>
  <th>No</th>
  <th>Name</th>
  <th>Email</th>
  <th>Address</th>
  <th>Created At</th>
  <th>Updated At</th>
 </tr>
<?php
 $sql="SELECT * FROM crud";
 $hsl=mysql_query($sql,$db);
 $no=0;
 while(list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl)){
  $no++;
  ?>
    <tr>
     <td><?=$no?></td>
     <td><?=$name?></td>
     <td><?=$email?></td>
     <td><?=$address?></td>
     <td><?=$created_at?></td>
     <td><?=$updated_at?></td>
    </tr>
     <?php
 }
?>
</table>
<br>
<button class="button_def" onclick='window.location="view/crud/create.php"'>Create</button>

Setelah itu kita buat file baru dengan nama create.php dan letakkan pada path view/crud/create.php, isi dengan code berikut.
<!-- custom css -->
<link rel="stylesheet" href="../../styles/style.css">
<!--  -->
<!-- header -->
<?php include_once "../../_header.php" ?>
<?php include_once "../master/header.php" ?>
<!--  -->
<!-- content -->
<div class="content">
  <div class="fill">
   <?php include_once "../../model/Create.php" ?>
   <form method="POST" action="">
  <table>
   <tr>
    <td>Name</td><td>:</td><td><input type="text" name="name" id="name" required></td>
   </tr>
   <tr>
    <td>Email</td><td>:</td><td><input type="text" name="email" id="email" required></td>
   </tr>
   <tr>
    <td>Address</td><td>:</td><td><textarea style="width:100%" type="text" name="address" id="address" required></textarea></td>
   </tr>
   <tr><td></td><td></td><td><input type="submit" value="Add" name="simpan" id="simpan"></td></tr>
  </table>
 </form>
  </div>
</div>
<!--  -->
<!-- footer -->
<?php include_once "../master/footer.php" ?>
<?php include_once "../../_footer.php" ?>
<!--  -->

Setelah selesai, kemudian buat file baru dengan nama create.php dan letakkan pada path model/Create.php sebagai model dari create.
Isi dengan code berikut.
<?php
 $_simpan  = $_POST["simpan"];
 $_name   = $_POST["name"];
 $_email   = $_POST["email"];
 $_address = $_POST["address"];
 if ($_simpan) {
  $sql="INSERT INTO crud (name,email,address,created_at,updated_at) VALUES ";
        $sql.="('$_name','$_email','$_address',NOW(),NOW())";
     mysql_query($sql,$db);
 }
?>

Sehingga hasilnya akan menjadi seperti ini.


===DONE!===

Website sederhana untuk pemula menggunakan PHP - CRUD (read)


Artikel kali ini akan membahas tentang membuat sebuah sistem read database pada php non framework.

Pada posting sebelumnya sudah saya posting sebuah artikel tentang sistem CRUD dengan menggunakan framework laravel, lihat disini.

Oke, sebelum masuk ketutorialnya saya asumsikan kamu sudah mengikuti posting sebelumnya karena pada artikel ini dan selanjutnya saya akan menggunakan custom framework.

Jika belum silahkan kamu terapkan dulu artikel tersebut.

Langsung saja kita mulai tutorialnya,

Pertama-tama edit file crud.php pada path webcoboy/view/crud.php menjadi seperti ini.
<?php include_once "view/master/header.php" ?>
<div class="content">
  <div class="fill">
   <?php include_once "model/read.php" ?>
  </div>
</div>
<?php include_once "view/master/footer.php" ?>

Selanjutnya buat file read.php pada path webcoboy/model/read.php


Isi read.php dengan code berikut.
<table border="1px";>
 <tr>
  <th>No</th>
  <th>Name</th>
  <th>Email</th>
  <th>Address</th>
  <th>Created At</th>
  <th>Updated At</th>
 </tr>
<?php
 $sql="SELECT * FROM crud";
 $hsl=mysql_query($sql,$db);
 $no=0;
 while(list($name,$email,$address,$created_at,$updated_at,$id)=mysql_fetch_array($hsl)){
  $no++;
  ?>
    <tr>
     <td><?=$no?></td>
     <td><?=$name?></td>
     <td><?=$email?></td>
     <td><?=$address?></td>
     <td><?=$created_at?></td>
     <td><?=$updated_at?></td>
    </tr>
     <?php
 }
?>
</table>
<br>
<button class="button_def" >Create</button>

Sehingga hasilya akan menjadi seperti ini.



===DONE!===

Website sederhana untuk pemula menggunakan PHP - Membuat koneksi database


Agar sebuah website dapat terhubung dengan database maka kita harus membuat koneksinya terlebih dahulu.

Koneksi database yang akan saya jelaskan pada posting kali ini adalah membuat koneksi database php tanpa menggunakan framework.

Ingin tahu koneksi database php dengan menggunakan framework Laravel? bisa lihat disini.

Koneksi database ini sangatlah penting sebelum kita akan memulai membuat sebuah sistem pada php yang menggunakan database.

Sebelum memulai tutorial ini kamu harus mengikuti tutorial sebelumnya, karena struktur project website yang saya gunakan pada tutorial kali ini menggunakn custom framework dapat dilihat disini.

Oke langsung saja, berikut tutorialnya..

Pertama-tama buat file baru bernama koneksi.php pada folder webcoboy sehingga akan tampak seperti ini.


Jika kamu mau menggunakan user dan password yang sudah ada pada phpmyadmin silahkan tinggal sesuaikan saja parameter dari isi file koneksi.php nya nanti.

Buat database baru dengan cara:
Klik New

Isi nama databasenya


Kemudian klik Create

Untuk melihat user yang sudah ada, klik Users


Jika ingin membuat user baru silahkan klik databasenya kemudian pada menubar klik privileges/hak akses, selanjutnya ikuti panduan berikut, lihat nomor 8.

Isikan code berikut pada koneksi.php.
<?php
  $host="localhost";
  $user="webcoboy";
  $pass="webcoboy";
  $dbname="webcoboy";

  $db=mysql_connect($host,$user,$pass);
  mysql_select_db($dbname,$db);
?>
$user merupakan nama user
$pass merupakan password user
$dbname merupakan nama databasenya

Kemudian ubah sedikit code pada file _header.php menjadi seperti ini.
<?php include_once "koneksi.php" ?>
<!DOCTYPE html>
<html>
  <head>
    <title>Webcoboy</title>
    <link rel="stylesheet" href="styles/style.css">
  </head>
  <body>

Untuk mengetes apakah database sudah terkoneksi atau belum silahkan lanjutkan pada tutorial berikutnya Read(CRUD).

===DONE!===

Website sederhana untuk pemula menggunakan PHP - Membuat custom framework


Sebelum mulai menerapkan tutorial ini, saya asumsikan kamu sudah belajar posting saya sebelumnya dan sudah menerapkannya. karena struktur sistem pada posting tersebut akan kita edit sedikit dan akan kita jadikan base tamplate/framework website kita.

Oke langsung saja berikut tutorialnya,

Pertama kita edit dulu templatenya yang kemaren karena sudah tidak layak pakai, hehe..

Template yang baru ini akan saya samakan sedikit dengan framework Laravel on PHP dan Ruby on Rails. Untuk Ruby on Rails belum pernah saya berikan tutorialnya karena masih banyak story tentang PHP dan Laravel yang harus saya selesaikan terlebih dahulu, jadi tunggu saja tutorial Ruby on Railsnya,.,.,

File style.css pada path webcoboy/styles ubah menjadi seperti ini
body {
  text-align: center;
  margin: 0px 0px 0px 0px;
}
/*-------------------default-------------------*/
.button_def {
  cursor: pointer;
  padding: 5px;
}

.button_def:hover{
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
}

input[type=submit]{
  cursor: pointer;
  padding: 5px;
}

input[type=submit]:hover{
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
}

.button2 {
  height: 40px;
  width: 240px;
  border-style: solid;
  font-size: 17px;
  display: inline-block;
    vertical-align: middle;
  border-radius: 25px;
  cursor: pointer;
}

/*-------------------header---------------------*/
.main_image {
  width: 100%;
  height: 40px;
  background-image: url(../images/main_image.jpg);
  background-size: cover;
  text-align: center;
}

.header_content {
  line-height: 40px;
  width: 90%;
  display: inline-block;
  text-align: left;
}

li {
  list-style: none;
  cursor: pointer;
}

li a{
  padding: 11px;
  color: white;
  text-decoration: none;
}

li a:hover{
  padding: 11px;
  background-color: white;
  color: black;
}

/*------------------isi--------------------*/
.content{
  width: 100%;
  text-align: center;
}

.fill{
  padding: 10px 10px;
  border-radius: 5px;
  margin-top: 20px;
  margin-bottom: 20px;
  display: inline-block;
  width: 80%;
  border: 1px solid grey;
  text-align: left;
  height: 521px;
}

/*--------------------footer---------------------*/
.footer{
  width: 100%;
  text-align: center;
  background-color: #888888;
}
.content_footer{
  padding: 10px;
  width: 90%;
  display: inline-block;
  text-align: left;
  height: 30px;
}

Ubah nama folder content menjadi view dan buat folder baru bernama master,
kemudian pindahkan file header.php kedalam folder master.
Selanjutnya buat file footer.php pada folder master dan buat file crud.php pada folder view sehingga akan tamapak seperti ini.


Isi file footer.php dengan code berikut
<div class="footer">
 <div class="content_footer">
  Copyright: codedoct.com
 </div>
</div>

Ganti isi file header.php dengan code berikut
<div class="main_image">
 <div class="header_content">
  <li><a href="#">Home</a></li>
 </div>
</div>

Isi file crud.php dengan code berikut
<?php include_once "view/master/header.php" ?>
<div class="content">
  <div class="fill">
   
  </div>
</div>
<?php include_once "view/master/footer.php" ?>

Ubah isi file index.php menjadi seperti ini
<?php include_once "_header.php" ?>
<?php include_once "view/crud.php" ?>
<?php include_once "_footer.php" ?>

Selanjutnya tambahkan folder model pada project kita (webcoboy), sehingga struktur folder website akan tampak seperti ini.


Setelah semua selesai dilakukan sekarang coba buka browser dan buka project website kita, sehingga akan tampak seperti ini.


===DONE!===

Website sederhana untuk pemula menggunakan PHP - debug POST (submit)


Cara melihat variabel yang di submit terbawa atau tidak

buat file php sederhana
<form method="POST">
 <table>
   <tr>
     <td>Nama</td>
     <td>:</td>
     <td><input type="text" name="name" id="name"></td> 
   </tr> 
   <tr>
     <td>Alamat</td>
     <td>:</td>
     <td><textarea name="alamat" id="alamat"></textarea> </td> 
   </tr> 
      <tr>
     <td><input type="submit" name="save" id="save" value="save"> </td> 
   </tr>
 </table>
</form>

akan terlihat seperti ini,,


kemudian tambahkan code
<?php
 echo "<pre>";
 print_r($_POST);
 echo "</pre>";
?>

menjadi seperti ini
<form method="POST">
 <table>
   <tr>
     <td>Nama</td>
     <td>:</td>
     <td><input type="text" name="name" id="name"></td> 
   </tr> 
   <tr>
     <td>Alamat</td>
     <td>:</td>
     <td><textarea name="alamat" id="alamat"></textarea> </td> 
   </tr> 
      <tr>
     <td><input type="submit" name="save" id="save" value="save"> </td> 
   </tr>
 </table>
</form>

<?php
 echo "<pre>";
 print_r($_POST);
 echo "</pre>";
?>

tampilan setelah debug


setelah di save akan muncul array inputan form
dengan ini kita dapat memastikan code form sudah benar atau belum..

===DONE===

Website sederhana untuk pemula menggunakan PHP - mengganti domain localhost ubuntu


1. Letakan file web pada /var/www/html/
2. Edit file hosts
    - vim /etc/hosts
    - (root) sudo vim /etc/hosts

  

3. Sehingga tampilannya akan menjadi seperti ini



===DONE!===

Website sederhana untuk pemula menggunakan PHP - belajar css sederhana (header)


Pada artikel kali ini kita akan membuat sebuah header website dengan css dan php sebelumnya kita telah membuat project awal sebuah website. Sebelum melanjutkan ke artikel yang ini sangat dianjurkan membaca artikel sebelumnya tentang Website sederhana untuk pemula menggunakan PHP - membuat project sederhana..

Belajarlah untuk tidak hanya copy-paste karena dengan mengetik langsung sebuah code secara tidak langsung kita telah menulis code tersebut pada alam bawah sadar kita sehingga kita akan lebih mudah mengingatnya. Itulah sebabnya semua code saya tampilkan dalam bentuk gambar, bukan dalam bentuk tulisan yang bisa di copy-paste. hehe,,

Oke saya asumsikan project webcoboy sudah dibuat, berikut langkah selanjutnya:
1. Buat file _header.php pada folder webcoboy yang berisi
<!DOCTYPE html>
<html>
  <head>
    <title>Webcoboy</title>
    <link rel="stylesheet" href="styles/style.css">
  </head>
  <body>

2. Buat file _footer.php pada folder webcoboy yang berisi
</body>
</html>

2. Buat folder styles dan buat file style.css pada folder tersebut yang berisi
body {
  margin: 0px 0px 0px 0px;
}

/*-------------------header---------------------*/
.main_image {
  width: 100%;
  height: 591px;
  background-image: url(../images/main_image.jpg);
  background-size: cover;
}

.center_area {
  width: 1024px;
  margin: 0 auto;
  text-align: center;
}

.header_content {
  width: 1024px;
  color: white;
}

.header_content #title1 {
  font-weight: normal;
  font-size: 22px;
}

.header_content #title2 {
  font-weight: bolder;
  font-size: 34px;
}

.header_content #date {
  color: #EDD5D7;
  font-size: 13px;
}

.button_green {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
  width: 324px;
  height: 70px;
  background-color: #6BAD20;
  font-weight: bolder;
  font-size: 17px;
  display: inline-block;
    vertical-align: middle;
  border-radius: 5px;
  cursor: pointer;
}

.button_green:hover{
 background-color:rgba(90, 148, 27, 255);
}

.header_content #button2 {
  height: 40px;
  width: 240px;
  border-style: solid;
  font-size: 17px;
  display: inline-block;
    vertical-align: middle;
  border-radius: 25px;
  cursor: pointer;
}

3. Buat folder content dan buat file header.php pada folder tersebut yang berisi
<div class="main_image">
  <div style="height:186px"></div>
    <div class="center_area">
      <div class="header_content">
        <div id="title1">Title 1</div>
        <div id="title2">Title 2</div>
        <div id="title2">Title 2</div>
        <div style="height:21px"></div>
        <div id="date">APRIL-MEI 2016</div>
        <div style="height:31px"></div>
        <div class="button_green">
          <div style="height:25px"></div>
          DAFTAR SEKARANG
        </div>
        <div style="height:74px"></div>
        <div id="button2">
          <div style="height:10px"></div>
          LIHAT DETAIL ACARA
        </div>
      </div>
    </div>
</div>

4. Buat folder images dan isikan sebuah gambar pada folder tersebut sebagai
    gambar background header dengan nama gambar main_image
5. Terakhir koneksikan seluruh file tersebut pada file index.php dengan
    mengetikan
<?php include_once "_header.php" ?>
<?php include_once "content/header.php" ?>
<?php include_once "_footer.php" ?>

6. Sehingga akan terbentuk susunan file sebagai berikut



Semua file .php saya letakkan pada folder yang berbeda-beda dan saya pisah-pisah agar code tidak terlalu panjang pada satu halaman saja, inilah yang disebut dengan refactor. sehingga code tampak lebih rapi..

Setelah semua sudah dibuat selanjutnya mengecek pada browser dengan mengetikkan localhost/webcoboy dan taraaaaaa..



---Selamat Mencoba---