<?php require_once 'core.php'; if (!isset($_POST['from']) || !isset($_POST['channel_id']) || (int) $_POST['channel_id'] < 0 || !isset($_POST['message']) || !isset($_POST['signature']) || $_POST['signature'] != hash('sha512', $_POST['from'] . $_POST['channel_id'] . $_POST['message'] . FS_TO_CHAT_KEY)) { print 'Wrong input.'; exit; } require_once 'chat.php'; global $memcache; $chat = new Chat($memcache); $chat->SetDatabase(); $chat->GetAuthInfo($_POST['from']); if (isset($chat->user['error']) && $chat->user['error'] !== '') { print $chat->user['error']; exit; } if ($res = $chat->WriteMessage($_POST['message'])) { $chat->WriteChannelCache((int) $_POST['channel_id']); print $res; exit; } else { print 'WriteMessage false'; exit; }
<?php // TODO перенести на nginx? // без задачи работать не стоит if (empty($_REQUEST['task'])) { exit; } else { $task = $_REQUEST['task']; } require_once 'core.php'; require_once 'utils.php'; require_once 'chat.php'; global $memcache; $chat = new Chat($memcache); $chat->GetAuthInfo(); // если есть ошибка авторизации, лучше сразу отдать ее и прекратить выполнение if (isset($chat->user['error']) && $chat->user['error'] !== '') { // если только это не запрос забаненного к истории, который решили разрешить if (!($task === 'GetHistory' && $chat->user['error'] === CHAT_USER_BANNED_IN_CHAT)) { SendDefaultResponse($chat->user); } } if ($task === 'GetUserInfo') { SendDefaultResponse($chat->user); } // для всех действий, кроме авторизации, проверяем установленный токен if (empty($_REQUEST['token']) || $chat->user['token'] !== $_REQUEST['token']) { $chat->user['error'] = CHAT_TOKEN_VERIFICATION_FAILED; SendDefaultResponse($chat->user); } // выполняем действия для задачи