X-Git-Url: https://git.p6c8.net/jirafeau_mojo42.git/blobdiff_plain/ba6f06965a4d9846e23d99a0e9f74b1361c18c40..8dc8b4bc884065eecec6ef0e544bf47734e69372:/file.php diff --git a/file.php b/file.php index 31c16da..7916fb8 100644 --- a/file.php +++ b/file.php @@ -27,6 +27,10 @@ require(JIRAFEAU_ROOT . 'lib/functions.php'); if(isset($_GET['h']) && !empty($_GET['h'])) { $link_name = $_GET['h']; + $delete_code = ''; + if(isset($_GET['d']) && !empty($_GET['d'])) + $delete_code = $_GET['d']; + if(!ereg('[0-9a-f]{32}$', $link_name)) { header("HTTP/1.0 404 Not Found"); @@ -46,50 +50,35 @@ if(isset($_GET['h']) && !empty($_GET['h'])) { $time = trim($content[4]); $md5 = trim($content[5]); $onetime = trim($content[6]); - - if(!file_exists(VAR_FILES . $md5)) { - if (file_exists(VAR_FILES . $md5 . '_count')) { - unlink(VAR_FILES . $md5 . '_count'); - } - unlink($link_file); - require(JIRAFEAU_ROOT . 'lib/template/header.php'); - echo '

' . _('File not available.') . '

'; - require(JIRAFEAU_ROOT . 'lib/template/footer.php'); - exit; - } + $link_code = trim($content[9]); - $counter = 1; - if (file_exists(VAR_FILES . $md5 . '_count')) { - $content = file(VAR_FILES . $md5 . '_count'); - $counter = trim($content[0], NL); - } - if($time != JIRAFEAU_INFINITY) { - if(time() > $time) { - unlink($link_file); + + if(!file_exists(VAR_FILES . $md5)) { + jirafeau_delete($link_name); + require(JIRAFEAU_ROOT . 'lib/template/header.php'); + echo '

' . _('File not available.') . '

'; + require(JIRAFEAU_ROOT . 'lib/template/footer.php'); + exit; + } - $counter--; - if ($counter >= 1) { - $handle = fopen(VAR_FILES . $md5 . '_count', 'w'); - fwrite($handle, $counter); - fclose($handle); - } - elseif ($counter == 0) { - if (file_exists(VAR_FILES . $md5 . '_count')) { - unlink(VAR_FILES . $md5 . '_count'); - } - $new_name = jirafeau_detect_collision($md5 . '_' . $file_name, VAR_TRASH); - rename(VAR_FILES . $md5, VAR_TRASH . $new_name); - } + if(!empty($delete_code) && $delete_code == $link_code) { + jirafeau_delete($link_name); + require(JIRAFEAU_ROOT . 'lib/template/header.php'); + echo '

' . _('File has been deleted.') . '

'; + require(JIRAFEAU_ROOT . 'lib/template/footer.php'); + exit; + } + if($time != JIRAFEAU_INFINITY && time() > $time) { + jirafeau_delete($link_name); require(JIRAFEAU_ROOT . 'lib/template/header.php'); echo '

' . _('The time limit of this file has expired. It has been deleted.') . '

'; require(JIRAFEAU_ROOT . 'lib/template/footer.php'); exit; } - } - if(!empty($key)) { + if(!empty($key)) { if(!isset($_POST['key'])) { require(JIRAFEAU_ROOT . 'lib/template/header.php'); ?> @@ -132,21 +121,7 @@ if(isset($_GET['h']) && !empty($_GET['h'])) { readfile(VAR_FILES . $md5); if($onetime == 'O') { - unlink($link_file); - - $counter--; - if ($counter >= 1) { - $handle = fopen(VAR_FILES . $md5 . '_count', 'w'); - fwrite($handle, $counter); - fclose($handle); - } - elseif ($counter == 0) { - if (file_exists(VAR_FILES . $md5 . '_count')) { - unlink(VAR_FILES . $md5 . '_count'); - } - $new_name = jirafeau_detect_collision($md5 . '_' . $file_name, VAR_TRASH); - rename(VAR_FILES . $md5, VAR_TRASH . $new_name); - } + jirafeau_delete($link_name); } exit; } else {