diff options
Diffstat (limited to 'delete/confirm/index.php')
-rw-r--r-- | delete/confirm/index.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/delete/confirm/index.php b/delete/confirm/index.php new file mode 100644 index 0000000..dba2c1e --- /dev/null +++ b/delete/confirm/index.php @@ -0,0 +1,43 @@ +<?php + +session_start(); +require_once $_SERVER['DOCUMENT_ROOT'] . "/private/session.php"; + +$_CONF_URN = $_FULLNAME; +$_CONF_UID = $_SUID; +$_CONF_USP = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/private/profiles/" . $_CONF_UID . ".json"), true); + +function fb() { + if (isset($_GET['i'])) { + header("Location: /delete/?i=" . $_GET['i']); + die(); + } else { + header("Location: /files"); + die(); + } +} + +if (isset($_GET['csrf']) && isset($_SESSION['csrf_token']) && $_GET['csrf'] === $_SESSION['csrf_token']) { + $selected = null; + foreach ($_CONF_USP['files'] as $file) { + if ($file['id'] === $_GET['i']) { + $selected = $file; + } + } + + if ($selected === null) { + fb(); + } else { + $file = $selected; + } +} else { + fb(); +} + +unlink("./shares/" . $file['file']); +if (array_search($file, $_CONF_USP['files']) !== false) { + unset($_CONF_USP['files'][array_search($file, $_CONF_USP['files'])]); +} +file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/private/profiles/" . $_CONF_UID . ".json", json_encode($_CONF_USP, JSON_PRETTY_PRINT)); +header("Location: /files"); +die();
\ No newline at end of file |