Belajar Membuat Aplikasi Sederhana Dengan Php

Propaganda CRUD menjadi bagian penting di internal proses ekspansi website. Gerakan ini menjadi inti dari seluruh proses pengelolaan data sreg sebuah website. Maka dari itu, operasi CRUD menjadi sangat berjasa untuk dipelajari sebelum Anda membuat website nan mustakim.

Kendati Anda kian mudah untuk mengerti CRUD, plong artikel ini kami akan menyedang mengulas cara membuat CRUD menggunakan bahasa pemrograman PHP. Harapannya selepas mendaras kata sandang ini Anda dapat membuat CRUD dengan PHP dan MySQL dengan cepat. Yuk simak ulasannya!


Apa itu CRUD?

CRUD ialah singkatan berpangkal Create, Read, Update, dan Delete. Proses ini sangat berkaitan dengan pengambilan atau transaksi data dari maupun ke database. Hal ini menjadi krusial apabila gandeng dengan sistem informasi perusahaan karena data yang diproses biasanya merupakan data transaksi.

Buat PHP Developer, operasi CRUD biasanya menjadi pillar bagi mempelajari proses pengelolaan data menggunakan PHP dan tentu saja MySQL database. Ambillah CRUD ini dapat diibaratkan perumpamaan jalur alias koneksi yang menambat antara bahasa pemrograman PHP dengan MySQL.

Kian jelasnya, berikut ini ulasan gerakan CRUD beserta contohnya:

  • Create
    (C) merupakan proses pembuatan data baru. Proses ini umumnya dilakukan detik Anda mendaftar pada sebuah halaman website. Data yang Beliau masukkan akan disimpan di dalam database menggunakan operasi Create.
  • Read
    (R) merupakan proses pemungutan data pecah database. Proses ini biasanya terjadi detik Kamu ingin melakukan proses login di pekarangan website tertentu. Momen Anda klik “Login” maka website akan menjalankan proses “Read” buat berbuat verifikasi akun yang Engkau gunakan.

    Contoh kampanye nan lebih sederhana yaitu ketika Beliau mengakses sebuah halaman website, saat itu pula proses Read berjalan. Hasil bermula usaha ini adalah tampilan pelataran website yang Anda lihat di browser.

  • Update
    (U) adalah proses mengingkari data yang berada di privat database. Transendental proses ini ketika Beliau mengubah profil di dalam akun sosial alat angkut. Saat Anda klik “Ubah”,  website akan mengirimkan proses Update ke dalam database. Kemudian database meresponnya dengan mengingkari data lama menjadi data bau kencur yang Engkau tambahkan melalui pekarangan profil.
  • Delete
    (D) adalah proses kerjakan menghapus data yang ada di database. Proses ini mirip dengan Update, bedanya, proses Delete akan mengubah data yang cak semau di database menjadi ‘lain ada’.

Itulah gambaran kecil pengusahaan CRUD di website.

Supaya lebih mudah memaklumi, di bawah ini adalah contoh penggunaan CRUD dengan menunggangi bahasa pemrograman PHP dan MySQL databases.

Cara Membuat CRUD Dengan PHP Dan MySQL

Developer permohonan web majuh memperalat PHP dan MySQL sebagai komponen utamanya. Bahasa pemrograman PHP memproses berbagai fungsi untuk menjalankan operasi CRUD. Sedangkan MySQL bertugas lakukan menyimpan database dari website.

MySQL selayaknya tidak hanya bisa diakses menggunakan PHP belaka, bahasa pemrograman tak seperti Python, JavaScript, dan sejenisnya pun bisa cak bagi mengakses MySQL.

Sedangkan PHP juga bisa menggunakan peladen database lain seperti PostgreSQL, MongoDB, dan sejenisnya.

Namun puas kamil ini kami menggunakan PHP dan MySQL karena lebih sederhana dan mudah buat dipahami.

Coretan:
Perlu Anda ketahui juga, ada tiga variasi pertautan –koneksi ini kadang-kadang disebut dengan API MySQL– antara PHP ke MySQL, yaitu mysql, mysqli, dan PDO (PHP Data Object).
Mysqli
merupakan versi
pengganti dari mysql. Hal ini dikarenakan mysql telah lain dikembangkan lagi sejak versi PHP 5.5. Padahal detik ingin menghubungkan PHP dengan MySQL dan penyedia database lain, Sira
perlu menggunakan spesies koneksi PDO.

Plong kesempatan ini, kita akan membiasakan menggunakan PHP dan MySQL buat menciptakan menjadikan aplikasi primitif. Pada contoh kasus di dasar ini, kami akan mencoba membuat sebuah
tuntutan primitif bakal mematamatai dan menambahkan data pegawai
.


1. Membuat Tabel Database

Meski Anda bisa mengamalkan operasi CRUD karuan namun terlazim sebuah data. Jadi peristiwa pertama yang wajib Anda lakukan bikin mewujudkan CRUD adalah menambahkan data ke dalam database di MySQL.

Anda dapat menambahkan data personel menggunakan query di pangkal ini.

Pertama bakal database terlebih dahulu.

        CREATE DATABASE niagahoster;
      

Kemudian masukkan Diagram yang nantinya digunakan kerjakan data pegawai (employee).

        CREATE TABLE employees (     id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,     name VARCHAR(100) NOT NULL,     address VARCHAR(255) Titinada NULL,     salary INT(10) NOT NULL );
      

Query di atas yaitu SQL nan bertugas buat menyiagakan database beserta Tabulasi yang berisi variabel id, name (segel), alamat (address), dan salary (gaji).

Kamu juga boleh menambahkan variabel lain, sebagai halnya nomor handphone, status, hobi, dan tidak sebagainya.

Pastikan database berhasil terbuat dengan mengetikan perintah “show tables;”.

crud show tables


2. Takhlik File Config

Nah! Selepas Kamu mempersiapkan data, awalan selanjutnya adalah mempersiapkan koneksi meski PHP dapat terhubung dengan MySQL. Caranya adalah dengan menciptakan menjadikan sebuah file berilmu script PHP individual bagi melakukan jalinan.

Kamu bisa memberikan nama apapun sesuai dengan kerinduan. Plong model ini, kami menggunakan merek file config.php. Kemudian masukkan baris kode di bawah ini.

File ini nanti akan digabungkan dengan file tidak menggunakan khasiat PHP require_once() dan berlaku juga kerjakan file nan lainnya.

Anda bisa melihat puas baris kode di pangkal ini.

        <?php /* Database credentials. Assuming you are running MySQL peladen with default setting (user 'root' with no password) */  define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', 'password'); define('DB_NAME', 'niagahoster');  /* Attempt to connect to MySQL database */ $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);  // Check connection if($link === false){     die("ERROR: Could not connect. " . mysqli_connect_error()); } ?>
      

Perlu menjadi catatan. Anda harus mengganti
DB_SERVER,
DB_USERNAME,
DB_PASSWORD, dan
DB_NAME
dengan detail database Anda per.

File config.php biasanya berisi beberapa konfigurasi yang berhubungan dengan website. Kaprikornus file ini menjadi pusat konfigurasi dan comar dipanggil/digunakan di file lainnya.


3. Membuat Landing Page

Setelah Engkau membuat data dan mengkoneksikan PHP ke database, langkah lebih jauh adalah membuat tempat untuk menampilkan data tersebut. Kami akan membuat sebuah landing page bikin petisi CRUD. Landing page ini nanti akan memajukan
record
dari tabel database employees.

Di dalam landing page ini kembali akan ada icon pada setiap
record
dari tabel database employee. Pada setiap data yang tampil di privat diagram akan ada icon nan bisa digunakan untuk menjalankan perintah update, delete, dan melihat detail informasi ataupun data.

Kami juga akan menambahkan tombol create untuk menambahkan data employees. Kenop ini bermanfaat untuk menambahkan record baru pada tabel employees di dalam database.

Bakal membuatnya, silakan masukkan baris kode di dasar ini ke dalam file index.php.

        <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Dashboard</title>     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"></script>     <style type="text/css">         .wrapper{             width: 650px;             margin: 0 auto;         }         .page-header h2{             margin-top: 0;         }         table tr td:last-child a{             margin-right: 15px;         }     </style>     <script type="text/javascript">         $(document).ready(function(){             $('[data-toggle="tooltip"]').tooltip();         });     </script> </head> <body>     <div class="wrapper">         <div class="container-fluid">             <div class="row">                 <div class="col-md-12">                     <div class="page-header clearfix">                         <h2 class="pull-left">Warta Tenaga kerja</h2>                         <a href="create.php" class="btn btn-success pull-right">Tambah Hijau</a>                     </div>                     <?php                     // Include config file                     require_once "config.php";                      // Attempt select query execution                     $sql = "SELECT * FROM employees";                     if($result = mysqli_query($link, $sql)){                         if(mysqli_num_rows($result) > 0){                             echo "<table class='table table-bordered table-striped'>";                                 echo "<thead>";                                     echo "<tr>";                                         echo "<th>#</th>";                                         echo "<th>Etiket</th>";                                         echo "<th>Bulan-bulanan</th>";                                         echo "<th>Salary</th>";                                         echo "<th>Pengaturan</th>";                                     echo "</tr>";                                 echo "</thead>";                                 echo "<tbody>";                                 while($row = mysqli_fetch_array($result)){                                     echo "<tr>";                                         echo "<td>" . $row['id'] . "</td>";                                         echo "<td>" . $row['name'] . "</td>";                                         echo "<td>" . $row['address'] . "</td>";                                         echo "<td>" . $row['salary'] . "</td>";                                         echo "<td>";                                             echo "<a href='read.php?id=". $row['id'] ."' title='View Record' data-toggle='tooltip'><span class='glyphicon glyphicon-eye-open'></span></a>";                                             echo "<a href='update.php?id=". $row['id'] ."' title='Update Record' data-toggle='tooltip'><span class='glyphicon glyphicon-pencil'></span></a>";                                             echo "<a href='delete.php?id=". $row['id'] ."' title='Delete Record' data-toggle='tooltip'><span class='glyphicon glyphicon-trash'></span></a>";                                         echo "</td>";                                     echo "</tr>";                                 }                                 echo "</tbody>";                             echo "</table>";                             // Free result set                             mysqli_free_result($result);                         } else{                             echo "<p class='lead'><em>No records were found.</em></p>";                         }                     } else{                         echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);                     }                      // Close connection                     mysqli_close($link);                     ?>                 </div>             </div>         </div>     </div> </body> </html>
      

Masukkan beberapa data pegawai melangkaui halaman landing page. Baris kode di atas tekor bertambah memunculkan tabel seperti di bawah ini.

tabel landing page


4. Mewujudkan Jerambah Create

Create merupakan proses cak bagi memasukkan mualamat/data ke intern database. Nah pada langkah ini Ia akan mempelajari bagaimana pendirian memperalat
Create
(C) di dalam ririt kode.

Bertepatan doang bikin file dengan nama “create.php”. Kemudian masukkan saf kode di bawah ini.

        <?php // Include config file require_once "config.php";  // Define variables and initialize with empty values $name = $address = $salary = ""; $name_err = $address_err = $salary_err = "";  // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){     // Validate name     $input_name = trim($_POST["name"]);     if(empty($input_name)){         $name_err = "Please enter a name.";     } elseif(!filter_var($input_name, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[a-zA-Z\s]+$/")))){         $name_err = "Please enter a mustakim name.";     } else{         $name = $input_name;     }      // Validate address     $input_address = trim($_POST["address"]);     if(empty($input_address)){         $address_err = "Please enter an address.";     } else{         $address = $input_address;     }      // Validate salary     $input_salary = trim($_POST["salary"]);     if(empty($input_salary)){         $salary_err = "Please enter the salary amount.";     } elseif(!ctype_digit($input_salary)){         $salary_err = "Please enter a positive integer value.";     } else{         $salary = $input_salary;     }      // Check input errors before inserting in database     if(empty($name_err) && empty($address_err) && empty($salary_err)){         // Prepare an insert statement         $sql = "INSERT INTO employees (name, address, salary) VALUES (?, ?, ?)";          if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "sss", $param_name, $param_address, $param_salary);              // Set parameters             $param_name = $name;             $param_address = $address;             $param_salary = $salary;              // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 // Records created successfully. Redirect to landing page                 header("location: index.php");                 exit();             } else{                 echo "Something went wrong. Please try again later.";             }         }          // Close statement         mysqli_stmt_close($stmt);     }      // Close connection     mysqli_close($link); } ?>  <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Create Record</title>     <link ril="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         .wrapper{             width: 500px;             margin: 0 auto;         }     </style> </head> <body>     <div class="wrapper">         <div class="container-fluid">             <div class="row">                 <div class="col-md-12">                     <div class="page-header">                         <h2>Tambah Record</h2>                     </div>                     <p>Silahkan isi form di bawah ini kemudian submit untuk menambahkan data pegawai ke dalam database.</p>                     <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">                         <div class="form-group <?php echo (!empty($name_err)) ? 'has-error' : ''; ?>">                             <stempel>Nama</stempel>                             <input type="text" name="name" class="form-control" value="<?php echo $name; ?>">                             <span class="help-block"><?php echo $name_err;?></span>                         </div>                         <div class="form-group <?php echo (!empty($address_err)) ? 'has-error' : ''; ?>">                             <label>Target</label>                             <textarea name="address" class="form-control"><?php echo $address; ?></textarea>                             <span class="help-block"><?php echo $address_err;?></span>                         </div>                         <div class="form-group <?php echo (!empty($salary_err)) ? 'has-error' : ''; ?>">                             <segel>Salary</label>                             <input type="text" name="salary" class="form-control" value="<?php echo $salary; ?>">                             <span class="help-block"><?php echo $salary_err;?></span>                         </div>                         <input type="submit" class="btn btn-primary" value="Submit">                         <a href="index.php" class="btn btn-default">Cancel</a>                     </form>                 </div>             </div>         </div>     </div> </body> </html>
      

Larik kode di atas akan menampilkan form yang berfungsi untuk menambahkan data pegawai ke dalam
database. Di dalam baris kode di atas kembali terdapat pembuktian input sebelum data disimpan di n domestik database.

tambah data crud


5. Membuat Pelataran Read

File yang bertugas buat memasukkan data sudah ada. Tugas lebih lanjut merupakan membentuk file nan bertugas untuk mencuil/membaca data dari
database
dan menampilkannya dalam bentuk tabel.

Silakan buat file dengan nama “read.php” kemudian masukkan baris kode di bawah ini ke dalamnya.

Baris kode di bawah akan menampilkan informasi secara detail sendirisendiri tenaga kerja jika Anda mengklik icon read yang cak semau di dalam tabel.

        <?php // Check existence of id indeks before processing further if(isset($_GET["id"]) && !empty(trim($_GET["id"]))){     // Include config file     require_once "config.php";          // Prepare a select statement     $sql = "SELECT * FROM employees WHERE id = ?";          if($stmt = mysqli_prepare($link, $sql)){         // Bind variables to the prepared statement as parameters         mysqli_stmt_bind_param($stmt, "i", $param_id);                  // Set parameters         $param_id = trim($_GET["id"]);                  // Attempt to execute the prepared statement         if(mysqli_stmt_execute($stmt)){             $result = mysqli_stmt_get_result($stmt);                  if(mysqli_num_rows($result) == 1){                 /* Fetch result row as an associative array. Since the result set                 contains only one row, we don'falak need to use while loop */                 $row = mysqli_fetch_array($result, MYSQLI_ASSOC);                                  // Retrieve individual field value                 $name = $row["name"];                 $address = $row["address"];                 $salary = $row["salary"];             } else{                 // URL doesn'falak contain bonafide id penanda. Redirect to error page                 header("location: error.php");                 exit();             }                      } else{             echo "Oops! Something went wrong. Please try again later.";         }     }           // Close statement     mysqli_stmt_close($stmt);          // Close connection     mysqli_close($link); } else{     // URL doesn't contain id indikator. Redirect to error page     header("location: error.php");     exit(); } ?> <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>View Record</title>     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         .wrapper{             width: 500px;             margin: 0 auto;         }     </style> </head> <body>     <div class="wrapper">         <div class="container-fluid">             <div class="row">                 <div class="col-md-12">                     <div class="page-header">                         <h1>View Record</h1>                     </div>                     <div class="form-group">                         <keunggulan>Name</label>                         <p class="form-control-static"><?php echo $row["name"]; ?></p>                     </div>                     <div class="form-group">                         <segel>Address</label>                         <p class="form-control-static"><?php echo $row["address"]; ?></p>                     </div>                     <div class="form-group">                         <label>Salary</stempel>                         <p class="form-control-static"><?php echo $row["salary"]; ?></p>                     </div>                     <p><a href="index.php" class="btn btn-primary">Back</a></p>                 </div>             </div>                 </div>     </div> </body> </html>
      


5. Membuat Pekarangan Update

Setelah membentuk Create dan Read, saat ini giliran Kamu bakal membuat file Update untuk mengubah data yang sudah disimpan.

Silakan cak bagi file “update.php” dan tambahkan baris kode di dasar ini ke dalamnya. Larik kode ini akan menodongkan Engkau ke halaman tidak nan berisi form cak bagi mengubah manifesto yang sudah ada di internal database.

        <?php // Include config file require_once "config.php";   // Define variables and initialize with empty values $name = $address = $salary = ""; $name_err = $address_err = $salary_err = "";   // Processing form data when form is submitted if(isset($_POST["id"]) && !empty($_POST["id"])){     // Get hidden input value     $id = $_POST["id"];          // Validate name     $input_name = trim($_POST["name"]);     if(empty($input_name)){         $name_err = "Please enter a name.";     } elseif(!filter_var($input_name, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[a-zA-Z\s]+$/")))){         $name_err = "Please enter a valid name.";     } else{         $name = $input_name;     }          // Validate address address     $input_address = trim($_POST["address"]);     if(empty($input_address)){         $address_err = "Please enter an address.";          } else{         $address = $input_address;     }          // Validate salary     $input_salary = trim($_POST["salary"]);     if(empty($input_salary)){         $salary_err = "Please enter the salary amount.";          } elseif(!ctype_digit($input_salary)){         $salary_err = "Please enter a positive integer value.";     } else{         $salary = $input_salary;     }          // Check input errors before inserting in database     if(empty($name_err) && empty($address_err) && empty($salary_err)){         // Prepare an update statement         $sql = "UPDATE employees SET name=?, address=?, salary=? WHERE id=?";                   if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "sssi", $param_name, $param_address, $param_salary, $param_id);                          // Set parameters             $param_name = $name;             $param_address = $address;             $param_salary = $salary;             $param_id = $id;                          // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 // Records updated successfully. Redirect to landing page                 header("location: index.php");                 exit();             } else{                 echo "Something went wrong. Please try again later.";             }         }                   // Close statement         mysqli_stmt_close($stmt);     }          // Close connection     mysqli_close($link); } else{     // Check existence of id indeks before processing further     if(isset($_GET["id"]) && !empty(trim($_GET["id"]))){         // Get URL indeks         $id =  trim($_GET["id"]);                  // Prepare a select statement         $sql = "SELECT * FROM employees WHERE id = ?";         if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "i", $param_id);                          // Set parameters             $param_id = $id;                          // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 $result = mysqli_stmt_get_result($stmt);                      if(mysqli_num_rows($result) == 1){                     /* Fetch result row as an associative array. Since the result set                     contains only one row, we don'n need to use while loop */                     $row = mysqli_fetch_array($result, MYSQLI_ASSOC);                                          // Retrieve individual field value                     $name = $row["name"];                     $address = $row["address"];                     $salary = $row["salary"];                 } else{                     // URL doesn'cakrawala contain andal id. Redirect to error page                     header("location: error.php");                     exit();                 }                              } else{                 echo "Oops! Something went wrong. Please try again later.";             }         }                  // Close statement         mysqli_stmt_close($stmt);                  // Close connection         mysqli_close($link);     }  else{         // URL doesn't contain id parameter. Redirect to error page         header("location: error.php");         exit();     } } ?>   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Update Record</title>     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         .wrapper{             width: 500px;             margin: 0 auto;         }     </style> </head> <body>     <div class="wrapper">         <div class="container-fluid">             <div class="row">                 <div class="col-md-12">                     <div class="page-header">                         <h2>Update Record</h2>                     </div>                     <p>Please edit the input values and submit to update the record.</p>                     <form action="<?php echo htmlspecialchars(basename($_SERVER['REQUEST_URI'])); ?>" method="post">                         <div class="form-group <?php echo (!empty($name_err)) ? 'has-error' : ''; ?>">                             <segel>Name</label>                             <input type="text" name="name" class="form-control" value="<?php echo $name; ?>">                             <span class="help-block"><?php echo $name_err;?></span>                         </div>                         <div class="form-group <?php echo (!empty($address_err)) ? 'has-error' : ''; ?>">                             <merek>Address</label>                             <textarea name="address" class="form-control"><?php echo $address; ?></textarea>                             <span class="help-block"><?php echo $address_err;?></span>                         </div>                         <div class="form-group <?php echo (!empty($salary_err)) ? 'has-error' : ''; ?>">                             <stempel>Salary</jenama>                             <input type="text" name="salary" class="form-control" value="<?php echo $salary; ?>">                             <span class="help-block"><?php echo $salary_err;?></span>                         </div>                         <input type="hidden" name="id" value="<?php echo $id; ?>"/>                         <input type="submit" class="btn btn-primary" value="Submit">                         <a href="index.php" class="btn btn-default">Cancel</a>                     </form>                 </div>             </div>                 </div>     </div> </body> </html>
      


6. Membentuk Halaman Delete

Cak agar Anda bisa menghapus siaran/data pegawai nan sudah ikut ke dalam database, maka teradat sebuah fungsi bakal menghapusnya.

Silahkan buat file dengan nama “delete.php” kemudian masukkan baris kode di sumber akar ini ke dalamnya. Baris kode ini akan menghapus data ketika Kamu klik icon delete yang ada di n domestik grafik.

        <?php // Process delete operation after confirmation if(isset($_POST["id"]) && !empty($_POST["id"])){     // Include config file     require_once "config.php";          // Prepare a delete statement     $sql = "DELETE FROM employees WHERE id = ?";          if($stmt = mysqli_prepare($link, $sql)){         // Bind variables to the prepared statement as parameters         mysqli_stmt_bind_param($stmt, "i", $param_id);                  // Set parameters         $param_id = trim($_POST["id"]);                  // Attempt to execute the prepared statement         if(mysqli_stmt_execute($stmt)){             // Records deleted successfully. Redirect to landing page             header("location: index.php");             exit();         } else{             echo "Oops! Something went wrong. Please try again later.";         }     }           // Close statement     mysqli_stmt_close($stmt);          // Close connection     mysqli_close($link); } else{     // Check existence of id parameter     if(empty(trim($_GET["id"]))){         // URL doesn'tepi langit contain id parameter. Redirect to error page         header("location: error.php");         exit();     } } ?> <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>View Record</title>     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         .wrapper{             width: 500px;             margin: 0 auto;         }     </style> </head> <body>     <div class="wrapper">         <div class="container-fluid">             <div class="row">                 <div class="col-md-12">                     <div class="page-header">                         <h1>Delete Record</h1>                     </div>                     <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">                         <div class="alert alert-danger fade in">                             <input type="hidden" name="id" value="<?php echo trim($_GET["id"]); ?>"/>                             <p>Are you sure you want to delete this record?</p><br>                             <p>                                 <input type="submit" value="Yes" class="btn btn-danger">                                 <a href="index.php" class="btn btn-default">No</a>                             </p>                         </div>                     </form>                 </div>             </div>                 </div>     </div> </body> </html>
      


7. Mewujudkan Jerambah Error

Terkadang ada baris kode yang problematis. Supaya Beliau tak perlu mendeklarasikan pelataran error pada setiap file, akan lebih baik jika Anda membuat halaman error sendiri.

Halaman ini akan membentangkan pesan error jika terjadi logika ataupun baris kode yang bermasalah. Beliau lagi boleh menyeimbangkan informasi di privat error ini sesuai dengan kebutuhan.

        <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Error</title>     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         .wrapper{             width: 750px;             margin: 0 auto;         }     </style> </head> <body>     <div class="wrapper">         <div class="container-fluid">             <div class="row">                 <div class="col-md-12">                     <div class="page-header">                         <h1>Invalid Request</h1>                     </div>                     <div class="alert alert-danger fade in">                         <p>Sorry, you've made an invalid request. Please <a href="index.php" class="alert-link">go back</a> and try again.</p>                     </div>                 </div>             </div>                 </div>     </div> </body> </html>
      

Menciptakan menjadikan CRUD di Pelataran CRUD

Kamil di atas yaitu contoh keteter pemanfaatan CRUD kerjakan menambahkan, menidakkan, mengambil, dan menghapus data pecah dan ke database. Penggunaan CRUD masih sangat luas.

Keseleo satu nan sering dijumpai yaitu ketika Kamu melakukan login ke pelataran website tertentu. Itu sebenarnya adalah kamil mungil dari penggunaan CRUD.

Pada adegan ini akan membahas mengenai kaidah membuat halaman login menggunakan sistem autentifikasi dengan manuver CRUD. Terdengar tertinggal, tapi cukup utama karena gandeng dengan keamanan sebuah aplikasi web. Kenapa? Autentifikasi merupakan mekanisme yang digunakan untuk membatasi akal masuk dari user yang enggak mempunyai hak akses atau tools/fitur tertentu.

Sebabat seperti langkah sebelumnya, Anda lagi harus mempersiapkan terlebih dahulu database nan berisi daftar user lakukan menjalankan proses login. Artikel ini juga akan menunggangi PHP dan MySQL sebagai bahasa pemrograman penting dan database server-nya.

Pada bagian mula-mula Anda akan ditunjukkan cara membuat form user untuk proses registrasi. Kemudian membuat form login pada babak kedua dan juga seperti rata-rata, yaitu membuat pelataran terdahulu dan script untuk mengamalkan logout.


1. Mewujudkan Sistem Registrasi

Bagian ini kelak Anda akan menciptakan menjadikan sebuah form registrasi konseptual dengan database di dalamnya. User akan bisa melakukan registrasi doang dengan mengisikan form yang sudah lalu tersedia.

Jadi langkah pertama nan perlu dilakukan adalah menyiagakan database andai penyimpanan data user.


Membentuk Tabel Database

Jalankan perintah di bawah ini cak bagi menambahkan record ke dalam database yang sudah dibuat sebelumnya (di artikel ini contohnya database niagahoster).

Dia bisa menyetimbangkan besaran plastis sesuai dengan kebutuhan. Namun ketika takhlik tabel bakal user, hal nan paling berarti adalah menambahkan variabel id, username, dan password. Ketiga plastis tersebut nantinya menjadi inti di dalam menciptakan menjadikan form login menggunakan autentifikasi.

        CREATE TABLE users (     id INT Not NULL PRIMARY KEY AUTO_INCREMENT,     username VARCHAR(50) Not NULL UNIQUE,     password VARCHAR(255) Not NULL,     created_at DATETIME DEFAULT CURRENT_TIMESTAMP );
      

Pastikan bahwa tabel users sudah terbuat dengan baik.

tabel user


2. Takhlik File Config

Sehabis membentuk tabel, cak agar bisa menjalankan proses CRUD, langkah selanjutnya yaitu membuat jembatan penghubung antara PHP dengan MySQL. Anda hanya adv amat membuat script PHP nan bertugas buat mengaduh ke database peladen.

Silahkan membuat file “config.php” (atau bisa menyalin dari program sebelumnya), kemudian masukkan larik kode di bawah ini.

        <?php /* Database credentials. Assuming you are running MySQL peladen with default setting (user 'root' with no password) */ define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', 'password'); define('DB_NAME', 'niagahoster');  /* Attempt to connect to MySQL database */ $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);  // Check connection if($link === false){     die("ERROR: Could titinada connect. " . mysqli_connect_error()); } ?>
      

Ganti informasi di atas sesuai dengan yuridiksi di MySQL server Kamu. Ganti
username,
password, dan nama
database
seperti yang Anda lakukan.


3. Membuat Form Registrasi

Setelah data sudah siap dan PHP boleh terhubung dengan MySQL, anju lebih jauh adalah mewujudkan tampilan
front-end
buat memunculkan hasil operasinya.

Buat file dengan merek “register.php” kemudian tambahkan baris kode di radiks ini. Semata-mata perlu Anda ketahui bahwa lajur kode di bawah ini mengizinkan user untuk membuat akunnya sendiri (tanpa perlu proses verifikasi).

        <?php // Include config file require_once "config.php";   // Define variables and initialize with empty values $username = $password = $confirm_password = ""; $username_err = $password_err = $confirm_password_err = "";   // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){       // Validate username     if(empty(trim($_POST["username"]))){         $username_err = "Please enter a username.";     } else{         // Prepare a select statement         $sql = "SELECT id FROM users WHERE username = ?";                  if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "s", $param_username);                          // Set parameters             $param_username = trim($_POST["username"]);                          // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 /* store result */                 mysqli_stmt_store_result($stmt);                                  if(mysqli_stmt_num_rows($stmt) == 1){                     $username_err = "This username is already taken.";                 } else{                     $username = trim($_POST["username"]);                 }             } else{                 echo "Oops! Something went wrong. Please try again later.";             }         }                   // Close statement         mysqli_stmt_close($stmt);     }          // Validate password     if(empty(trim($_POST["password"]))){         $password_err = "Please enter a password.";          } elseif(strlen(trim($_POST["password"])) < 6){         $password_err = "Password must have atleast 6 characters.";     } else{         $password = trim($_POST["password"]);     }          // Validate confirm password     if(empty(trim($_POST["confirm_password"]))){         $confirm_password_err = "Please confirm password.";          } else{         $confirm_password = trim($_POST["confirm_password"]);         if(empty($password_err) && ($password != $confirm_password)){             $confirm_password_err = "Password did not match.";         }     }          // Check input errors before inserting in database     if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){                  // Prepare an insert statement         $sql = "INSERT INTO users (username, password) VALUES (?, ?)";                   if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password);                          // Set parameters             $param_username = $username;             $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash                          // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 // Redirect to login page                 header("location: login.php");             } else{                 echo "Something went wrong. Please try again later.";             }         }                   // Close statement         mysqli_stmt_close($stmt);     }          // Close connection     mysqli_close($link); } ?>   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Sign Up</title>     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         body{ font: 14px sans-serif; }         .wrapper{ width: 350px; padding: 20px; }     </style> </head> <body>     <div class="wrapper">         <h2>Sign Up</h2>         <p>Please fill this form to create an account.</p>         <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">             <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">                 <logo>Username</segel>                 <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">                 <span class="help-block"><?php echo $username_err; ?></span>             </div>                 <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">                 <label>Password</label>                 <input type="password" name="password" class="form-control" value="<?php echo $password; ?>">                 <span class="help-block"><?php echo $password_err; ?></span>             </div>             <div class="form-group <?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?>">                 <label>Confirm Password</jenama>                 <input type="password" name="confirm_password" class="form-control" value="<?php echo $confirm_password; ?>">                 <span class="help-block"><?php echo $confirm_password_err; ?></span>             </div>             <div class="form-group">                 <input type="submit" class="btn btn-primary" value="Submit">                 <input type="reset" class="btn btn-default" value="Reset">             </div>             <p>Already have an account? <a href="login.php">Login here</a>.</p>         </form>     </div>     </body> </html>
      

Contoh di atas menggunakan kemustajaban PHP ‘password_hash()’ yang berfungsi untuk mengubah berusul password string menjadi teks hash.

Peristiwa ini patut menarik karena fungsi tersebut menggenerate sebuah password menggunakan one-way hashing algoritma nan pas kuat. Kemujaraban ini juga mengerjakan sistem random salt automatically (pengacakan garam) saat melakukan hashing password.

Proses hashing nan dilakukan tersebut memungkinkan penggunaan satu password yang sama. Hanya karena ada proses hashing ini, password bisa setolok, tapi kode hash akan tetap berbeda.

Selain itu, baris kode di atas akan memunculkan form cak bagi registrasi serempak pengecekan error. Konsumen yang tidak mengisi data kosong atau tak cermin akan menerima notifikasi error dan data lain disimpan. Error ini juga berguna saat user ingin membuat username yang sudah lalu terserah.

Tampilan leret kode di atas adv minim lebih sama dengan di sumber akar ini.

form sign up


4. Membuat Sistem Login

Setelah Anda memasukkan data dan membuat file konfigurasi, langkah selanjutnya adalah takhlik penggalan login dan pekarangan utama. Nantinya di dalam form login Anda dapat memasukkan username dan password sesuai dengan nan sudah dibuat di form registrasi.

Saat user melakukan submit (login) maka sistem akan melalui verifikasi ke dalam data nan mutakadim disimpan di dalam database. Jika username dan password sesuai, user bisa dipercaya dan bisa sekaligus masuk ke kerumahtanggaan sistem. Namun jikalau salah maka user akan mendapatkan informasi penolakan (rejected).

Berikut ini langkah-ancang untuk membuat form login dan atribut lainnya.


5. Membuat Form Login

Pertama, untuk malah dahulu file “login.php” dan masukkan kode di bawah ini ke dalamnya.

        <?php // Initialize the session session_start();   // Check if the user is already logged in, if yes then redirect him to welcome page if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){   header("location: welcome.php");   exit; }   // Include config file require_once "config.php";   // Define variables and initialize with empty values $username = $password = ""; $username_err = $password_err = "";   // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){       // Check if username is empty     if(empty(trim($_POST["username"]))){         $username_err = "Please enter username.";     } else{         $username = trim($_POST["username"]);     }          // Check if password is empty     if(empty(trim($_POST["password"]))){         $password_err = "Please enter your password.";     } else{         $password = trim($_POST["password"]);     }          // Validate credentials     if(empty($username_err) && empty($password_err)){         // Prepare a select statement         $sql = "SELECT id, username, password FROM users WHERE username = ?";                  if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "s", $param_username);                          // Set parameters             $param_username = $username;                          // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 // Store result                 mysqli_stmt_store_result($stmt);                                  // Check if username exists, if yes then verify password                 if(mysqli_stmt_num_rows($stmt) == 1){                                         // Bind result variables                     mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);                     if(mysqli_stmt_fetch($stmt)){                         if(password_verify($password, $hashed_password)){                             // Password is correct, so menginjak a new session                             session_start();                                                          // Store data in session variables                             $_SESSION["loggedin"] = true;                             $_SESSION["id"] = $id;                             $_SESSION["username"] = $username;                                                                                      // Redirect user to welcome page                             header("location: welcome.php");                         } else{                             // Display an error message if password is not jujur                             $password_err = "The password you entered was not meyakinkan.";                         }                     }                 } else{                     // Display an error message if username doesn'cakrawala exist                     $username_err = "No account found with that username.";                 }             } else{                 echo "Oops! Something went wrong. Please try again later.";             }         }                  // Close statement         mysqli_stmt_close($stmt);     }          // Close connection     mysqli_close($link); } ?>   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Login</title>     <link ril="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         body{ font: 14px sans-serif; }         .wrapper{ width: 350px; padding: 20px; }     </style> </head> <body>     <div class="wrapper">         <h2>Login</h2>         <p>Please fill in your credentials to login.</p>         <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">             <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">                 <label>Username</nama>                 <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">                 <span class="help-block"><?php echo $username_err; ?></span>             </div>                 <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">                 <label>Password</jenama>                 <input type="password" name="password" class="form-control">                 <span class="help-block"><?php echo $password_err; ?></span>             </div>             <div class="form-group">                 <input type="submit" class="btn btn-primary" value="Login">             </div>             <p>Don'horizon have an account? <a href="register.php">Sign up now</a>.</p>         </form>     </div>     </body> </html>
      

Baris kode di atas akan mengambil input id, username, dan password yang dimasukkan user kemudian memverifikasi ke n domestik diagram ‘users’ di privat database.

Takdirnya password dan username yang dimasukkan sesuai, user akan langsung masuk dan menampilkan halaman (session) bau kencur –pada kasus ini kita memakai file “welcome.php’’.

Baris kode di atas kurang lebih akan menampilkan tampilan begini.

form login


6. Membuat Halaman Utama

Setelah form login selesai tentu tetapi membuat jerambah utama untuk ditampilkan saat user berhasil masuk ke privat sistem.

Sudahlah! Adakalanya lega proses login terletak data nan berpunca mulai sejak perigi yang lain dipercaya nan mencoba untuk turut ke intern sistem. Galibnya ini diisi oleh user anonymous. Ini sangat beresiko karena sewaktu-waktu mengandung script yang berbahaya contohnya serbuan
cross-site scripting
(XSS).

Cak agar Anda terhindar berpokok XSS, PHP menyediakan fungsi nan berguna untuk menanggulanginya yakni menggunakan fungsi htmlspecialchars() sebelum menampilkan halaman di browser. Kemujaraban ini membuat barang apa jenis tag HTML yang mengandung script ‘virulen’ menjadi tak berbahaya.

Bagi mewujudkan file ini, silakan bakal file “welcome.php” kemudian masukkan baris kode di bawah.

        <?php // Initialize the session session_start();   // Check if the user is logged in, if not then redirect him to login page if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){     header("location: login.php");     exit; } ?>   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Welcome</title>     <link ril="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         body{ font: 14px sans-serif; text-align: center; }     </style> </head> <body>     <div class="page-header">         <h1>Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome to our site.</h1>     </div>     <p>         <a href="reset-password.php" class="btn btn-warning">Reset Your Password</a>         <a href="logout.php" class="btn btn-danger">Sign Out of Your Account</a>     </p> </body> </html>
      


7. Membuat Script Logout

Meski user dapat berpindah dari akun satu ke aku yang lainnya, Anda perlu menciptakan menjadikan fitur log out.

Fungsi dari file ini adalah menutup halaman (session) detik user ini keluar berusul akunnya.

Di dalam script ini terdapat sebuah khasiat yang berjalan momen user melakukan klik pada pentol ataupun link
log out
atau
sign out. Script akan menyelimuti session dan kemudian mengamalkan
redirect
ke pelataran login.

Silakan buat file dengan label “logout.php” kemudian masukkan baris kode di bawah ini.

        <?php // Initialize the session session_start();   // Unset all of the session variables $_SESSION = array();   // Destroy the session. session_destroy();   // Redirect to login page header("location: login.php"); exit; ?>
      


8. Membuat Fitur Reset Password

Opsional! Dia bisa meneruskan ke bagian ini jika kepingin menambahkan fitur reset password di dalam permintaan.

        <?php // Initialize the session session_start();   // Check if the user is logged in, otherwise redirect to login page if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){     header("location: login.php");     exit; }   // Include config file require_once "config.php";   // Define variables and initialize with empty values $new_password = $confirm_password = ""; $new_password_err = $confirm_password_err = "";   // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){       // Validate new password     if(empty(trim($_POST["new_password"]))){         $new_password_err = "Please enter the new password.";          } elseif(strlen(trim($_POST["new_password"])) < 6){         $new_password_err = "Password must have atleast 6 characters.";     } else{         $new_password = trim($_POST["new_password"]);     }          // Validate confirm password     if(empty(trim($_POST["confirm_password"]))){         $confirm_password_err = "Please confirm the password.";     } else{         $confirm_password = trim($_POST["confirm_password"]);         if(empty($new_password_err) && ($new_password != $confirm_password)){             $confirm_password_err = "Password did not match.";         }     }              // Check input errors before updating the database     if(empty($new_password_err) && empty($confirm_password_err)){         // Prepare an update statement         $sql = "UPDATE users SET password = ? WHERE id = ?";                  if($stmt = mysqli_prepare($link, $sql)){             // Bind variables to the prepared statement as parameters             mysqli_stmt_bind_param($stmt, "sang", $param_password, $param_id);                          // Set parameters             $param_password = password_hash($new_password, PASSWORD_DEFAULT);             $param_id = $_SESSION["id"];                          // Attempt to execute the prepared statement             if(mysqli_stmt_execute($stmt)){                 // Password updated successfully. Destroy the session, and redirect to login page                 session_destroy();                 header("location: login.php");                 exit();             } else{                 echo "Oops! Something went wrong. Please try again later.";             }         }                  // Close statement         mysqli_stmt_close($stmt);     }          // Close connection     mysqli_close($link); } ?>   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Reset Password</title>     <link ril="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">     <style type="text/css">         body{ font: 14px sans-serif; }         .wrapper{ width: 350px; padding: 20px; }     </style> </head> <body>     <div class="wrapper">         <h2>Reset Password</h2>         <p>Please fill out this form to reset your password.</p>         <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">              <div class="form-group <?php echo (!empty($new_password_err)) ? 'has-error' : ''; ?>">                 <logo>New Password</label>                 <input type="password" name="new_password" class="form-control" value="<?php echo $new_password; ?>">                 <span class="help-block"><?php echo $new_password_err; ?></span>             </div>             <div class="form-group <?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?>">                 <label>Confirm Password</tanda>                 <input type="password" name="confirm_password" class="form-control">                 <span class="help-block"><?php echo $confirm_password_err; ?></span>             </div>             <div class="form-group">                 <input type="submit" class="btn btn-primary" value="Submit">                 <a class="btn btn-link" href="welcome.php">Cancel</a>             </div>         </form>     </div>     </body> </html>
      

Baca juga:
Prinsip Migrasi Database MySQL ke Server Lain di Ubuntu 14.04


Penghabisan

Demikian latihan prinsip menciptakan menjadikan CRUD dengan PHP dan MySQL. CRUD (Create, Read, Update, Delete) yakni usaha yang pasti digunakan di dalam proses peluasan permintaan web, Maka dari itu, usaha ini wajib dipelajari dan dimengerti dengan baik. Bahkan sebuah aplikasi web tidak pernah izin dari penggunaan database.

PHP dan MySQL merupakan gayutan yang sering dipakai. Baik bahasa pemrograman PHP ataupun database peladen MySQL, keduanya memiliki dokumentasi yang komplet dan enggak tergolong rumit sehingga Anda dengan mudah boleh memahami keduanya dengan cepat.

Anda barangkali masih punya beberapa pertanyaan, ayo tinggalkan pertanyaan tersebut melangkaui rubrik komentar di dasar ini. Jikalau Sira menyukai artikel dari kami atau cak hendak mendapatkan informasi terbaru dari kami, jangan tengung-tenging
subscribe. Semoga kata sandang ini bermanfaat.

Source: https://www.niagahoster.co.id/blog/cara-membuat-crud-dengan-php-dan-mysql/