From 4c970f099f2210ac91cccdca1d0c3564a8f79c1a Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Wed, 31 May 2017 18:24:21 +0200 Subject: Make sure that the tag exists before altering/removing it Fixes #886 --- index.php | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/index.php b/index.php index 2ff2505a..39230c80 100644 --- a/index.php +++ b/index.php @@ -1176,6 +1176,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history) die('Wrong token.'); } + $count = 0; // Delete a tag: if (isset($_POST['deletetag']) && !empty($_POST['fromtag'])) { $needle = trim($_POST['fromtag']); @@ -1184,13 +1185,16 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history) foreach($linksToAlter as $key=>$value) { $tags = explode(' ',trim($value['tags'])); - unset($tags[array_search($needle,$tags)]); // Remove tag. - $value['tags']=trim(implode(' ',$tags)); - $LINKSDB[$key]=$value; - $history->updateLink($LINKSDB[$key]); + if (($pos = array_search($needle,$tags)) !== false) { + unset($tags[$pos]); // Remove tag. + $value['tags']=trim(implode(' ',$tags)); + $LINKSDB[$key]=$value; + $history->updateLink($LINKSDB[$key]); + ++$count; + } } $LINKSDB->save($conf->get('resource.page_cache')); - echo ''; + echo ''; exit; } @@ -1202,13 +1206,16 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history) foreach($linksToAlter as $key=>$value) { $tags = preg_split('/\s+/', trim($value['tags'])); // Replace tags value. - $tags[array_search($needle, $tags)] = trim($_POST['totag']); - $value['tags'] = implode(' ', array_unique($tags)); - $LINKSDB[$key] = $value; - $history->updateLink($LINKSDB[$key]); + if (($pos = array_search($needle,$tags)) !== false) { + $tags[$pos] = trim($_POST['totag']); + $value['tags'] = implode(' ', array_unique($tags)); + $LINKSDB[$key] = $value; + $history->updateLink($LINKSDB[$key]); + ++$count; + } } $LINKSDB->save($conf->get('resource.page_cache')); // Save to disk. - echo ''; + echo ''; exit; } } -- cgit v1.2.3