Mini Shell
<?php
session_start();
if(!isset($_SESSION['login'])) {
header('LOCATION:login.php'); die();
}
?>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet">
<title>CRUD Operation using JSON File in PHP</title>
<style>
.table td.domain {word-break: break-all;}
.payment-form{padding-bottom:50px;font-family:'Montserrat',sans-serif}
.payment-form.dark{background-color:#f6f6f6}
.payment-form .content{box-shadow:0 2px 10px rgba(0,0,0,0.075);background-color:#fff}
.payment-form .block-heading{padding-top:50px;margin-bottom:40px;text-align:center}
.payment-form .block-heading p{text-align:center;max-width:420px;margin:auto;opacity:.7}
.payment-form.dark .block-heading p{opacity:.8}
.payment-form .block-heading h1,.payment-form .block-heading h2,.payment-form .block-heading h3{margin-bottom:1.2rem;color:#3b99e0}
.payment-form form{border-top:2px solid #5ea4f3;box-shadow:0 2px 10px rgba(0,0,0,0.075);background-color:#fff;padding:0;max-width:600px;margin:auto}
.payment-form .title{font-size:1em;border-bottom:1px solid rgba(0,0,0,0.1);margin-bottom:.8em;font-weight:600;padding-bottom:8px}
.payment-form .products{background-color:#f7fbff;padding:25px}
.payment-form .products .item{margin-bottom:1em}
.payment-form .products .item-name{font-weight:600;font-size:.9em}
.payment-form .products .item-description{font-size:.8em;opacity:.6}
.payment-form .products .item p{margin-bottom:.2em}
.payment-form .products .price{float:right;font-weight:600;font-size:.9em}
.payment-form .products .total{border-top:1px solid rgba(0,0,0,0.1);margin-top:10px;padding-top:19px;font-weight:600;line-height:1}
.payment-form .card-details{padding:25px 25px 15px}
.payment-form .card-details label{font-size:12px;font-weight:600;margin-bottom:15px;color:#79818a;text-transform:uppercase}
.payment-form .card-details button{margin-top:.6em;padding:12px 0;font-weight:600}
.payment-form .date-separator{margin-left:10px;margin-right:10px;margin-top:5px}
@media (min-width: 576px) {
.payment-form .title{font-size:1.2em}
.payment-form .products{padding:40px}
.payment-form .products .item-name{font-size:1em}
.payment-form .products .price{font-size:1em}
.payment-form .card-details{padding:40px 40px 30px}
.payment-form .card-details button{margin-top:2em}
}
</style>
</head>
<body>
<main class="container page">
<section class="payment-form dark">
<?php
$json = file_get_contents('domain.json');
$data = json_decode($json,true);
switch($_GET['action']) {
case 'add':
if(isset($_POST['btnadd'])){
$add_arr = array(
'dbname' => $_POST['dbname'],
'domain' => str_replace(array("\r\n"," "), array(",",""), $_POST['domain'])
);
$data[] = $add_arr;
$data = json_encode($data, JSON_PRETTY_PRINT);
file_put_contents('domain.json', $data);
header('location: index.php');
} ?>
<div class="container">
<div class="block-heading">
<h2>Add Record</h2>
</div>
<form method="post" name="frmAdd">
<div class="card-details">
<div class="row">
<div class="form-group col-sm-12">
<label>Tên DB</label>
<input class="form-control" type="text" name="dbname" placeholder="vd: tenstore" required>
</div>
<div class="form-group col-sm-12">
<label>Domain (Mỗi domain 1 hàng)</label>
<textarea class="form-control" name="domain" rows="4" placeholder="vd: tenstore.com" required></textarea>
</div>
<input class="btn btn-primary btn-block confirm-button" type="submit" value="Add" name="btnadd">
</div>
</div>
</form>
</div>
<?php
break;
case 'update':
$edit_id = $_GET['edit_id'];
$data_array = $data;
//get json data
$row = $data_array[$edit_id];
if(isset($_POST['btnUpdate']))
{
$update_arr = array(
'dbname' => $_POST['dbname'],
'domain' => str_replace(array("\r\n"," "), array(",",""), $_POST['domain'])
);
$data_array[$edit_id] = $update_arr;
$data = json_encode($data_array, JSON_PRETTY_PRINT);
file_put_contents('domain.json', $data);
header('location: index.php');
} ?>
<div class="block-heading">
<h2>Update Record</h2>
</div>
<form method="post" name="frmUpdate">
<div class="card-details">
<div class="row">
<div class="form-group col-sm-12">
<label>Tên Data</label>
<input class="form-control" type="text" name="dbname" value="<?=$row['dbname'];?>" readonly>
</div>
<div class="form-group col-sm-12">
<label>Domain (Mỗi domain 1 hàng)</label>
<textarea class="form-control" name="domain" rows="4"><?=str_replace(",","\n",$row['domain']);?></textarea>
</div>
<input class="btn btn-primary btn-block confirm-button" type="submit" value="Update" name="btnUpdate">
</div>
</div>
</form>
<?php
break;
case 'delete':
$delete_id = $_GET['delete_id'];
unset($data[$delete_id]);
//encode back to json
$data = json_encode($data, JSON_PRETTY_PRINT);
file_put_contents('domain.json', $data);
header('location: index.php');
break;
default:
?>
<div class="col-sm-12">
<div class="row col-sm-12">
<a href="taodb.php" class="btn btn-primary col-sm-3">Tạo DB</a>
<a href="restore.php" class="btn btn-info col-sm-3">Import DB</a>
<a href="?action=add" class="btn btn-primary col-sm-3">Add Domain</a>
<button id="button_save" type="button" class="btn btn-info col-sm-3">GEN FILE</button>
</div>
<p id="button_note"></p>
</div>
<div>
<div class="row col-sm-12">
<table border="1" align="center" class="table table-striped table-hover table-borderless">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Tên DB</th>
<th scope="col">Domain</th>
<th scope="col">#</th>
</tr>
</thead>
<tbody>
<?php
include 'domain.php';
if(!empty($data)){
foreach($data as $keyid => $row){ ?>
<tr>
<td><?php echo $keyid; ?></td>
<td><?php echo $row['dbname']; ?></td>
<td class="domain"><?php echo $row['domain']; ?></td>
<td><a href="?action=update&edit_id=<?php echo $keyid; ?>">Edit</a>
<!-- / <a href="?action=delete&delete_id=<?php echo $keyid; ?>">Delete</a> -->
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
<?php
} ?>
</section>
</main>
</body>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script>
$("#button_save").click(function(){
$("#button_note").html("Đang lưu file...");
$.ajax({
url: "save.php",
success: function(result){
$("#button_note").html(result);
}});
});
</script>
</body>
</html>