-
Notifications
You must be signed in to change notification settings - Fork 0
/
AJAXchangeFavorites.php
49 lines (38 loc) · 3.2 KB
/
AJAXchangeFavorites.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
// Стартуем сессию с пользователем - сделать доступными переменные сессии
session_start();
// Подключаем нужные модели и представления
$websiteRoot = $_SERVER['DOCUMENT_ROOT'];
require_once $websiteRoot . '/models/DBconnect.php';
require_once $websiteRoot . '/models/GlobFunc.php';
require_once $websiteRoot . '/models/Logger.php';
require_once $websiteRoot . '/models/User.php';
require_once $websiteRoot . '/models/UserIncoming.php';
// Удалось ли подключиться к БД?
if (DBconnect::get() == FALSE) die('Ошибка подключения к базе данных (. Попробуйте зайти к нам немного позже.'); // TODO: Вернуть ошибку
// Инициализируем модель для запросившего страницу пользователя
$userIncoming = new UserIncoming();
// Проверяем, залогинен ли пользователь, если нет - то отказываем в доступе
if (!$userIncoming->login()) GlobFunc::accessDenied();
// Получаем идентификатор объявления, которое пользователь хочет добавить/удалить в Избранное и действие, которое нужно совершить с объявлением (добавить в избранное или удалить)
$propertyId = "";
if (isset($_POST['propertyId'])) $propertyId = htmlspecialchars($_POST['propertyId'], ENT_QUOTES); else GlobFunc::accessDenied();
$action = "";
if (isset($_POST['action'])) $action = htmlspecialchars($_POST['action'], ENT_QUOTES); else GlobFunc::accessDenied();
// Если требуемое действие = Добавить в избранное, то записываем id объявления в БД, в поле favoritePropertiesId пользователя - тем самым фиксируем, что он добавил данное объявление к себе в избранные
if ($action == "addToFavorites") {
if (!$userIncoming->addFavoritePropertiesId($propertyId)) GlobFunc::accessDenied();
}
// Если требуемое действие = Удалить из избранного, то удаляем id объявления из БД, из поля favoritePropertiesId пользователя
if ($action == "removeFromFavorites") {
if (!$userIncoming->removeFavoritePropertiesId($propertyId)) GlobFunc::accessDenied();
}
/*************************************************************************************
* Если все хорошо - возвращаем положительный статус выполнения операции
*************************************************************************************/
header('Content-Type: text/xml; charset=UTF-8');
echo "<xml><span status='successful'></span></xml>";
/********************************************************************************
* Закрываем соединение с БД
*******************************************************************************/
DBconnect::closeConnectToDB();