From b3dc6deeb2ce5b702f38abcf22e048ee01a2215d Mon Sep 17 00:00:00 2001 From: DariusIII Date: Wed, 3 Jun 2015 01:53:30 +0200 Subject: [PATCH] Partiali fix cart issue. --- newznab/controllers/Users.php | 23 +++++++++------ www/pages/cart.php | 53 ++++++++++++++++------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/newznab/controllers/Users.php b/newznab/controllers/Users.php index 356357507..f585a3e62 100644 --- a/newznab/controllers/Users.php +++ b/newznab/controllers/Users.php @@ -642,19 +642,24 @@ class Users return $this->pdo->query(sprintf("select usercart.*, releases.searchname,releases.guid from usercart inner join releases on releases.id = usercart.releaseid where userid = %d %s", $uid, $releaseid)); } - public function delCartByGuid($guids, $uid) + public function delCartByGuid($ids, $userID) { - if (!is_array($guids)) + if (!is_array($ids)) { return false; - - $del = []; - foreach ($guids as $id) { - $id = sprintf("%s", $this->pdo->escapeString($id)); - if (!empty($id)) - $del[] = $id; } - $this->pdo->query(sprintf("delete from usercart where userid = %d and releaseid IN (select id from releases where guid IN (%s)) ", $uid, implode(',', $del))); + $del = []; + foreach ($ids as $id) { + if (is_numeric($id)) { + $del[] = $id; + } + } + + return (bool)$this->pdo->queryExec( + sprintf( + "DELETE FROM usercart WHERE id IN (%s) AND userid = %d", implode(',', $del), $userID + ) + ); } public function delCartByUserAndRelease($guid, $uid) diff --git a/www/pages/cart.php b/www/pages/cart.php index 09e09d678..3a6112838 100644 --- a/www/pages/cart.php +++ b/www/pages/cart.php @@ -1,50 +1,45 @@ isLoggedIn()) +if (!$page->users->isLoggedIn()) { $page->show403(); +} -if (isset($_REQUEST["add"])) -{ - if (isset($_GET['add']) && !empty($_GET['add'])) - $ids = array($_GET['add']); - elseif (isset($_POST['add']) && is_array($_POST['add'])) - $ids = $_POST['add']; +if (isset($_GET["add"])) { + $releases = new Releases(['Settings' => $page->settings]); + $guids = explode(',', $_GET['add']); + $data = $releases->getByGuid($guids); - $releases = new Releases; - $data = $releases->getByGuid($ids); - - if (!$data) + if (!$data) { $page->show404(); + } - foreach($data as $d) - $users->addCart($users->currentUserId(), $d["id"]); -} -elseif (isset($_REQUEST["delete"])) -{ - if (isset($_GET['delete']) && !empty($_GET['delete'])) + foreach ($data as $d) { + $users->addCart($page->users->currentUserId(), $d["id"]); + } +} elseif (isset($_REQUEST["delete"])) { + if (isset($_GET['delete']) && !empty($_GET['delete'])) { $ids = array($_GET['delete']); - elseif (isset($_POST['delete']) && is_array($_POST['delete'])) + } elseif (isset($_POST['delete']) && is_array($_POST['delete'])) { $ids = $_POST['delete']; + } - if (isset($ids)) + if (isset($ids)) { $users->delCartByGuid($ids, $users->currentUserId()); + } - if (!isset($_POST['delete'])) - header("Location: ".WWW_TOP."/cart"); + if (!isset($_POST['delete'])) { + header("Location: " . WWW_TOP . "/cart"); + } - die(); -} -else -{ + exit(); +} else { $page->meta_title = "My Nzb Cart"; $page->meta_keywords = "search,add,to,cart,nzb,description,details"; $page->meta_description = "Manage Your Nzb Cart"; - $results = $users->getCart($users->currentUserId()); + $results = $users->getCart($page->users->currentUserId()); $page->smarty->assign('results', $results); $page->content = $page->smarty->fetch('cart.tpl'); $page->render(); -} - - +} \ No newline at end of file