From: ArthurHoaro Date: Wed, 31 May 2017 16:24:21 +0000 (+0200) Subject: Make sure that the tag exists before altering/removing it X-Git-Tag: v0.9.1~1^2~9^2~2 X-Git-Url: https://git.immae.eu/?p=github%2Fshaarli%2FShaarli.git;a=commitdiff_plain;h=4c970f099f2210ac91cccdca1d0c3564a8f79c1a Make sure that the tag exists before altering/removing it Fixes #886 --- 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; } }