summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSavetheinternet <savetheinternet@tinyboard.org>2011-05-23 15:29:58 +1000
committerSavetheinternet <savetheinternet@tinyboard.org>2011-05-23 15:29:58 +1000
commitd3a30b93b44c60f22435dd94cbb12aadc2c06a80 (patch)
tree3d871e6f193c6720805056de5f8c7c9ffc95527a
parentc4f078346fc59126a31069309d2820bef2cca660 (diff)
fixed bug when posting an image and getting muted
-rw-r--r--inc/functions.php62
1 files changed, 44 insertions, 18 deletions
diff --git a/inc/functions.php b/inc/functions.php
index cba4cc7f..34779dfb 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -220,8 +220,12 @@
function purge($uri) {
global $config;
- $uri = (str_replace('\\', '/', dirname($_SERVER['REQUEST_URI'])) == '/' ? '/' : str_replace('\\', '/', dirname($_SERVER['REQUEST_URI'])) . '/') . $uri;
-
+ if(preg_match($config['url_match'], $config['root'])) {
+ $uri = (str_replace('\\', '/', dirname($_SERVER['REQUEST_URI'])) == '/' ? '/' : str_replace('\\', '/', dirname($_SERVER['REQUEST_URI'])) . '/') . $uri;
+ } else {
+ $uri = $config['root'] . $uri;
+ }
+
foreach($config['purge'] as &$purge) {
$host = $purge[0];
$port = $purge[1];
@@ -234,7 +238,6 @@
// Cannot connect?
error('Could not PURGE for ' . $host);
}
-
}
}
@@ -249,7 +252,7 @@
$command = 'scp ' . escapeshellarg($file) . ' ' . escapeshellarg($m[1]);
system($command);
// Delete temporary file
- unlink($file);
+ file_unlink($file);
return;
}
@@ -285,6 +288,26 @@
}
}
+ function file_unlink($path) {
+ global $config;
+
+ @unlink($path);
+ if(isset($config['purge']) && isset($_SERVER['HTTP_HOST'])) {
+ // Purge cache
+ if(basename($path) == $config['file_index']) {
+ // Index file (/index.html); purge "/" as well
+ $uri = dirname($path);
+ // root
+ if($uri == '.')
+ $uri = '';
+ else
+ $uri .= '/';
+ purge($uri);
+ }
+ purge($path);
+ }
+ }
+
function listBoards() {
$query = query("SELECT * FROM `boards` ORDER BY `uri`") or error(db_error());
$boards = $query->fetchAll();
@@ -586,10 +609,10 @@
$query->bindValue(':file', null, PDO::PARAM_NULL);
} else {
// Delete thumbnail
- @unlink($board['dir'] . $config['dir']['thumb'] . $post['thumb']);
+ file_unlink($board['dir'] . $config['dir']['thumb'] . $post['thumb']);
// Delete file
- @unlink($board['dir'] . $config['dir']['img'] . $post['file']);
+ file_unlink($board['dir'] . $config['dir']['img'] . $post['file']);
// Set file to 'deleted'
$query->bindValue(':file', 'deleted', PDO::PARAM_INT);
@@ -621,18 +644,18 @@
while($post = $query->fetch()) {
if(!$post['thread']) {
// Delete thread HTML page
- @unlink($board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], $post['id']));
+ file_unlink($board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], $post['id']));
} elseif($query->rowCount() == 1) {
// Rebuild thread
$rebuild = $post['thread'];
}
if($post['thumb']) {
// Delete thumbnail
- @unlink($board['dir'] . $config['dir']['thumb'] . $post['thumb']);
+ file_unlink($board['dir'] . $config['dir']['thumb'] . $post['thumb']);
}
if($post['file']) {
// Delete file
- @unlink($board['dir'] . $config['dir']['img'] . $post['file']);
+ file_unlink($board['dir'] . $config['dir']['img'] . $post['file']);
}
}
@@ -1056,7 +1079,7 @@
if($page < $config['max_pages']) {
for(;$page<=$config['max_pages'];$page++) {
$filename = $page==1 ? $config['file_index'] : sprintf($config['file_page'], $page);
- @unlink($filename);
+ file_unlink($filename);
}
}
}
@@ -1354,7 +1377,7 @@
if (filetype($dir."/".$object) == "dir")
rrmdir($dir."/".$object);
else
- unlink($dir."/".$object);
+ file_unlink($dir."/".$object);
}
}
reset($objects);
@@ -1528,9 +1551,12 @@
}
function undoImage($post) {
- if($post['has_file'])
- @unlink($post['file']);
- @unlink($post['thumb']);
+ if($post['has_file']) {
+ if(isset($post['thumb']))
+ file_unlink($post['file']);
+ if(isset($post['thumb']))
+ file_unlink($post['thumb']);
+ }
}
function createimage($type, $source_pic) {
@@ -1541,26 +1567,26 @@
case 'jpg':
case 'jpeg':
if(!$image = @imagecreatefromjpeg($source_pic)) {
- unlink($source_pic);
+ file_unlink($source_pic);
error($config['error']['invalidimg']);
}
break;
case 'png':
if(!$image = @imagecreatefrompng($source_pic)) {
- unlink($source_pic);
+ file_unlink($source_pic);
error($config['error']['invalidimg']);
}
break;
case 'gif':
if(!$image = @imagecreatefromgif($source_pic)) {
- unlink($source_pic);
+ file_unlink($source_pic);
error($config['error']['invalidimg']);
}
break;
case 'bmp':
if(!$image = @imagecreatefrombmp($source_pic)) {
unlink($source_pic);
- error($config['error']['invalidimg']);
+ file_unlink($config['error']['invalidimg']);
}
break;
default: