$categories = array(); foreach ($all_categories as $category) { $category['subscribed'] = false; $categories[$category['id']] = $category; } $keywords = $subscriber->getKeywords(); $subscriptions_updated = false; if (isset($_POST['save_settings'])) { $subscribe_categories = array(); if (isset($_POST['categories']) && is_array($_POST['categories'])) { foreach ($_POST['categories'] as $categoryId) { if (array_key_exists($categoryId, $categories) || $categoryId === '0') { $subscribe_categories[] = $db->real_escape_string($categoryId); } } if ($subscriber->updateSubscriptions($subscribe_categories)) { $subscriptions_updated = true; } } if (isset($_POST['keywords']) && $_POST['keywords'] != $keywords) { if ($subscriber->setKeywords($_POST['keywords'])) { $keywords = $subscriber->getKeywords(); $subscriptions_updated = true; } } if ($subscriptions_updated) { $postman->MailSubscriptionUpdated($email, $auth); } } else { $subscribe_categories = $subscriber->getSubscriptions(); }