require_once 'core.php'; session_start(); $nick = Onset::varidate($_POST['nick']); $text = Onset::varidate($_POST['text']); $sys = Onset::varidate($_POST['sys']); $room = Onset::varidate($_SESSION['onset_room']); $id = Onset::varidate($_SESSION['onset_id']); try { if ($text === false || $nick === false || $room === false || $sys === false || $id === false) { throw new Exception('不正なアクセス:invalid_access'); } $_dir = RoomSavepath . $room; if (MaxNick <= mb_strlen($nick)) { throw new Exception('名前が長すぎます (' . mb_strlen($nick) . ')'); } if (MaxText <= mb_strlen($text)) { throw new Exception('テキストが長すぎます (' . mb_strlen($text) . ')'); } $diceRes = Onset::diceroll($text, $sys); $jsonData = (object) ['time' => microtime(true), 'nick' => $nick, 'text' => $text, 'dice' => $diceRes, 'id' => $id]; $chatLog = json_decode(file_get_contents($_dir . '/log.json')); $chatLog[] = $jsonData; file_put_contents($_dir . '/log.json', json_encode($chatLog), LOCK_EX); $_SESSION['onset_nick'] = $nick; } catch (Exception $e) { echo Onset::jsonMessage($e->getMessage(), -1); die; } echo Onset::jsonMessage('ok');
<?php require_once __DIR__ . '/core.php'; $roomlist = Onset::getRoomlist(); $i = 0; foreach ($roomlist as $room => $data) { $dir = RoomSavepath . $data->path . "/"; $leftTime = filemtime($dir); if (time() - $leftTime > RoomDelTime) { try { Onset::removeRoomData($dir); unset($roomlist->{$room}); if (!Onset::saveRoomlist($roomlist)) { throw new Exception("部屋インデックスデータの保存に失敗しました"); } } catch (Exception $e) { echo Onset::jsonMessage($e->getMessage(), -1); die; } $i += 1; } } echo $i > 0 ? Onset::jsonMessage($i . '部屋削除しました') : Onset::jsonMessage('ok');
<?php require_once __DIR__ . '/core.php'; session_start(); $time = Onset::varidate($_POST['time']); $room = Onset::varidate($_SESSION['onset_room']); if ($time === false || $room === false) { echo Onset::jsonMessage("不正なアクセス", -1); die; } $dir = RoomSavepath . $room; if (!file_exists($dir)) { echo Onset::jsonMessage("部屋が存在しません", -1); die; } $chatLog = json_decode(file_get_contents($dir . "/log.json")); $cuttedLog = Onset::searchLog($chatLog, $time); echo Onset::jsonMessage("ok", 1, $cuttedLog); $tmp = $dir . "/connect/" . $_SESSION['onset_id']; file_put_contents($tmp, time() . "\n" . $_SESSION['onset_nick'], LOCK_EX); clearstatcache();
$room = Onset::varidate($_POST['room']); try { if ($nick === false || $pass === false || $room === false) { throw new Exception('空欄があります'); } if (MaxNick <= mb_strlen($nick)) { throw new Exception('名前が長すぎます (' . mb_strlen($nick) . ')'); } $roomlist = Onset::getRoomlist(); $room = htmlspecialchars($room, ENT_QUOTES); if (!isset($roomlist->{$room})) { throw new Exception('存在しない部屋です'); } $roompath = $roomlist->{$room}->path; $dir = RoomSavepath; $_dir = $dir . $roompath; $hash = file_get_contents($_dir . '/pass.hash'); if (!password_verify($pass, $hash) && Pass != $pass) { throw new Exception('パスワードが間違っています'); } } catch (Exception $e) { echo Onset::jsonMessage($e->getMessage(), -1); die; } $id = ip2long($_SERVER['REMOTE_ADDR']) + mt_rand(); session_start(); $_SESSION['onset_nick'] = $nick; $_SESSION['onset_room'] = $roompath; $_SESSION['onset_id'] = dechex($id); echo Onset::jsonMessage('認証OK');