<?php 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'; 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();
<?php require_once __DIR__ . '/core.php'; $nick = Onset::varidate($_POST['nick']); $pass = Onset::varidate($_POST['pass']); $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();
<?php require_once __DIR__ . '/core.php'; session_start(); $room = Onset::varidate($_SESSION['onset_room']); $id = Onset::varidate($_SESSION['onset_id']); $lock = Onset::varidate($_POST['lock']); if (!$room || !$id) { echo "不正なアクセス"; die; } $dir = RoomSavepath . $room . "/connect/"; $arr = scandir($dir); if ($lock === 'unlock') { file_put_contents($dir . $id, time() . "\n" . $_SESSION['onset_nick'], LOCK_EX); die; } file_put_contents($dir . $id, time() . "\n" . $_SESSION['onset_nick'] . "\nlocked", LOCK_EX); $ret = ""; $num = 0; foreach ($arr as $value) { if ($value == "." || $value == "..") { continue; } $arr = explode("\n", file_get_contents($dir . $value)); $time = $arr[0]; $nick = $arr[1]; $isLock = count($arr) > 2 ? $arr : ''; if ($time + 5 < time() && $isLock !== 'locked') { unlink($dir . $value); continue;
<?php require_once __DIR__ . '/core.php'; session_start(); try { if ($_POST['rand'] != $_SESSION['onset_rand']) { throw new Exception('不正なアクセス。'); } $room = Onset::varidate($_POST['room']); $pass = Onset::varidate($_POST['pass']); if ($room === false || $pass === false) { throw new Exception('ルーム名かパスワードがセットされていません'); } $room = htmlspecialchars($room, ENT_QUOTES); $roomlist = Onset::getRoomlist(); if (!isset($roomlist->{$room})) { throw new Exception('部屋が存在しません'); } $roompath = $roomlist->{$room}->path; Onset::removeRoomData(RoomSavepath . $roompath . "/"); unset($roomlist->{$room}); if (!Onset::saveRoomlist($roomlist)) { throw new Exception('部屋インデックスデータの保存に失敗しました'); } } catch (Exception $e) { echo Onset::jsonMessage($e->getMessage(), -1); die; } echo Onset::jsonMessage('ok');