update
This commit is contained in:
97
admin/api.php
Normal file
97
admin/api.php
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
$action = $_POST['action'];
|
||||
if (!empty($action)){
|
||||
$config = json_decode(file_get_contents("../data/config.json"), true);
|
||||
|
||||
if ($action == "verify"){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
echo "OK";
|
||||
}
|
||||
else{
|
||||
echo "ERROR";
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "get"){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$stranky = json_decode(file_get_contents("../data/pageindex.json"), true);
|
||||
$out = "<table><tbody><tr><th>ID</th><th>Content ID</th><th>Nickname</th><th>Button</th></tr>";
|
||||
foreach($stranky as $idx => $arr) {
|
||||
$id = htmlspecialchars($idx);
|
||||
$nickname = htmlspecialchars($arr["nickname"]);
|
||||
$contentid = htmlspecialchars($arr["contentid"]);
|
||||
$out = $out . "<tr><td>$id</td><td>$contentid</td><td>$nickname</td><td><button onclick=\"delthis('$id')\">Delete</button></td></tr>";
|
||||
}
|
||||
$out = $out . "<tr><td><input id=\"addid\" placeholder=\"ID\"></td><td><input id=\"addcontentid\" placeholder=\"Content ID\"></td><td><input id=\"addnickname\" placeholder=\"Nickname\"></td><td><button id=\"linkadder\" onclick=\"justadd()\">Add</button></td></tr>";
|
||||
$out = $out . "</tbody></table>";
|
||||
echo $out;
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "delete" && !empty($_POST["id"])){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$stranky = json_decode(file_get_contents("../data/pageindex.json"), true);
|
||||
unset($stranky[$_POST["id"]]);
|
||||
file_put_contents("../data/pageindex.json", json_encode($stranky, JSON_PRETTY_PRINT));
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "set" && !empty($_POST["id"]) && !empty($_POST["contentid"]) && !empty($_POST["nickname"])){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$stranky = json_decode(file_get_contents("../data/pageindex.json"), true);
|
||||
$tmp = array("contentid"=>$_POST["contentid"], "nickname"=>$_POST["nickname"]);
|
||||
$stranky[$_POST["id"]] = $tmp;
|
||||
file_put_contents("../data/pageindex.json", json_encode($stranky, JSON_PRETTY_PRINT));
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "getcontent"){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$contents = json_decode(file_get_contents("../data/contents.json"), true);
|
||||
$out = "<table><tbody><tr><th>Content ID</th><th>Content</th><th>Button</th></tr>";
|
||||
foreach($contents as $idx => $content) {
|
||||
$id = htmlspecialchars($idx);
|
||||
$content = htmlspecialchars($content);
|
||||
$out = $out . "<tr><td>$id</td><td>$content</td><td><button onclick=\"delcthis('$id')\">Delete</button></td></tr>";
|
||||
}
|
||||
$out = $out . "<tr><td><input id=\"addidc\" placeholder=\"Content ID\"></td><td><textarea id=\"addcontentc\" placeholder=\"Content\"></textarea></td><td><button id=\"contentadder\" onclick=\"justaddc()\">Add</button></td></tr>";
|
||||
$out = $out . "</tbody></table>";
|
||||
echo $out;
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "deletecontent" && !empty($_POST["id"])){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$contents = json_decode(file_get_contents("../data/contents.json"), true);
|
||||
unset($contents[$_POST["id"]]);
|
||||
file_put_contents("../data/contents.json", json_encode($contents, JSON_PRETTY_PRINT));
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "setcontent" && !empty($_POST["id"]) && !empty($_POST["content"])){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$contents = json_decode(file_get_contents("../data/contents.json"), true);
|
||||
$contents[$_POST["id"]] = $_POST["content"];
|
||||
file_put_contents("../data/contents.json", json_encode($contents, JSON_PRETTY_PRINT));
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "getlog"&& !empty($_POST["id"])){
|
||||
if ($_POST["password"] == $config["admin_pwd"]){
|
||||
$logy = json_decode(file_get_contents("../data/logs.json"), true)[$_POST["id"]];
|
||||
$out = "<table><tbody><tr><th>Action</th><th>Date and Time</th><th>Nickname</th><th>Link</th><th>IP</th></tr>";
|
||||
foreach($logy as $arr) {
|
||||
$action = htmlspecialchars($arr["action"]);
|
||||
$link = htmlspecialchars($arr["link"]);
|
||||
$nickname = htmlspecialchars($arr["nickname"]);
|
||||
$ip = htmlspecialchars($arr["ip"]);
|
||||
$datetime = htmlspecialchars($arr["datetime"]);
|
||||
$out = $out . "<tr><td>$action</td><td>$datetime</td><td>$nickname</td><td>$link</td><td>$ip</td></tr>";
|
||||
}
|
||||
$out = $out . "</tbody></table>";
|
||||
echo $out;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
34
admin/index.html
Normal file
34
admin/index.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<link rel="stylesheet" href="pico.css" type="text/css">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
<title>Content dispenser admin</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="pwdentry">
|
||||
<input type="password" id="pwdbox">
|
||||
<button id="submitpwd">Login</button>
|
||||
</div>
|
||||
|
||||
<div id="indexmanagement">
|
||||
<h1>Link manager:</h1>
|
||||
<div id="linkslist">
|
||||
|
||||
</div>
|
||||
<h1>Content manager:</h1>
|
||||
<div id="contentlist">
|
||||
|
||||
</div>
|
||||
<h1>Log manager:</h1>
|
||||
<input type="text" id="logid"><button id="logget">Get log</button><br>
|
||||
<div id="loglist">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
2
admin/jquery.js
vendored
Normal file
2
admin/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
admin/pico.css
Normal file
4
admin/pico.css
Normal file
File diff suppressed because one or more lines are too long
151
admin/script.js
Normal file
151
admin/script.js
Normal file
@ -0,0 +1,151 @@
|
||||
let password = "";
|
||||
let datatable = {};
|
||||
let content = "";
|
||||
|
||||
function justadd(){
|
||||
let id = $("#addid").val();
|
||||
let contentid = $("#addcontentid").val();
|
||||
let nickname = $("#addnickname").val();
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "set",
|
||||
password: password,
|
||||
id: id,
|
||||
contentid: contentid,
|
||||
nickname: nickname,
|
||||
}, function( data ) {
|
||||
getlinks();
|
||||
});
|
||||
}
|
||||
|
||||
function justaddc(){
|
||||
let id = $("#addidc").val();
|
||||
let content = $("#addcontentc").val();
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "setcontent",
|
||||
password: password,
|
||||
id: id,
|
||||
content: content,
|
||||
}, function( data ) {
|
||||
getcontents();
|
||||
});
|
||||
}
|
||||
|
||||
function delcthis(name){
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "deletecontent",
|
||||
password: password,
|
||||
id: name
|
||||
}, function( data ) {
|
||||
getcontents();
|
||||
});
|
||||
}
|
||||
|
||||
function getcontents(){
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "getcontent",
|
||||
password: password
|
||||
}, function( data ) {
|
||||
$("#contentlist").html(data);
|
||||
|
||||
$("#addcontentc").keyup(function(event) {
|
||||
if (event.keyCode === 13) {
|
||||
$("#contentadder").click();
|
||||
$("#addidc").focus();
|
||||
}
|
||||
});
|
||||
$("#addidc").keyup(function(event) {
|
||||
if (event.keyCode === 13) {
|
||||
$("#addcontentc").focus();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function delthis(name){
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "delete",
|
||||
password: password,
|
||||
id: name
|
||||
}, function( data ) {
|
||||
getlinks();
|
||||
});
|
||||
}
|
||||
|
||||
function verifyPassword(){
|
||||
password = $("#pwdbox").val();
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "verify",
|
||||
password: password
|
||||
}, function( data ) {
|
||||
if (data == "OK"){
|
||||
getlinks();
|
||||
getcontents();
|
||||
$("#pwdentry").fadeOut("slow", function(){
|
||||
$("#indexmanagement").fadeIn("slow", function(){
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getlinks(){
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "get",
|
||||
password: password
|
||||
}, function( data ) {
|
||||
$("#linkslist").html(data);
|
||||
$("#addnickname").keyup(function(event) {
|
||||
if (event.keyCode === 13) {
|
||||
$("#linkadder").click();
|
||||
$("#addid").focus();
|
||||
}
|
||||
});
|
||||
|
||||
$("#addid").keyup(function(event) {
|
||||
if (event.keyCode === 13) {
|
||||
$("#addcontentid").focus();
|
||||
}
|
||||
});
|
||||
|
||||
$("#addcontentid").keyup(function(event) {
|
||||
if (event.keyCode === 13) {
|
||||
$("#addnickname").focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getlog(){
|
||||
let id = $("#logid").val();
|
||||
$.post("api.php",
|
||||
{
|
||||
action: "getlog",
|
||||
password: password,
|
||||
id: id
|
||||
}, function( data ) {
|
||||
$("#loglist").html(data);
|
||||
});
|
||||
}
|
||||
|
||||
$(function() {
|
||||
|
||||
$("#submitpwd").click(verifyPassword);
|
||||
$("#logget").click(getlog);
|
||||
|
||||
|
||||
$("#logid").keyup(function(event) {
|
||||
if (event.keyCode === 13) {
|
||||
$("#logget").click();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
3
admin/style.css
Normal file
3
admin/style.css
Normal file
@ -0,0 +1,3 @@
|
||||
#indexmanagement{
|
||||
display: none;
|
||||
}
|
19
index.php
19
index.php
@ -5,28 +5,33 @@ $idcko = $_GET['id'];
|
||||
if (!empty($idcko)){
|
||||
|
||||
$ipcka = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
$stranky = json_decode(file_get_contents("data/pageindex.json"), true);
|
||||
$contents = json_decode(file_get_contents("data/contents.json"), true);
|
||||
$logs = json_decode(file_get_contents("data/logs.json"), true);
|
||||
|
||||
$alllog = "data/all.log";
|
||||
$pagepath = "data/pages/";
|
||||
|
||||
if(array_key_exists($idcko, $stranky)){
|
||||
|
||||
$entry = $stranky[$idcko];
|
||||
$logfile = $pagepath . $entry["logfile"];
|
||||
$contentfile = $pagepath . $entry["contentfile"];
|
||||
$content = $contents[$entry["contentid"]];
|
||||
$nickname = $entry["nickname"];
|
||||
$logmessage = "Success from $nickname(\"$idcko\"), IP: $ipcka\n";
|
||||
$logmessage = "Success from $linkname, IP: $ipcka\n";
|
||||
if (!array_key_exists($idcko, $logs)){
|
||||
$logs[$idcko] = [];
|
||||
}
|
||||
$logs[$idcko][] = array("action"=>"Success", "datetime"=>date("H:i:s d.m.Y"), "link"=>$idcko, "nickname"=>$nickname, "ip"=>$ipcka);
|
||||
|
||||
file_put_contents($logfile, $logmessage, FILE_APPEND);
|
||||
file_put_contents("data/logs.json", json_encode($logs, JSON_PRETTY_PRINT));
|
||||
file_put_contents($alllog, $logmessage, FILE_APPEND);
|
||||
|
||||
echo file_get_contents($contentfile);
|
||||
echo $content;
|
||||
|
||||
}
|
||||
|
||||
else{
|
||||
die("Bad link");
|
||||
file_put_contents($pagepath . $entry["logfile"], "Fail from \"$idcko\", IP: $ipcka\n", FILE_APPEND);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
Reference in New Issue
Block a user