<?php require_once __DIR__ . '/src/core.php'; $dir = RoomSavepath; $roomlist = []; foreach (Onset::getRoomlist() as $room => $data) { if (time() - filemtime($dir . $data->path) > RoomDelTime) { continue; } $roomlist[$room] = $data; } session_start(); $_SESSION['onset_rand'] = $rand = mt_rand(); $welcomeMessage = file_get_contents('welcomeMessage.html'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Onset!</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <script src="js/jquery.js"></script> <script src="js/script.js"></script> <script src="js/bootstrap.min.js"></script> <script>rand = <?php echo $rand; ?>
<?php session_start(); if (!isset($_SESSION['onset_room'])) { header("Location: index.php"); die; } require_once __DIR__ . '/src/core.php'; $url = Onset::getBcdiceUrl(); $sysList = explode("\n", file_get_contents($url . "?list=1")); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Onset!</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/onset.css"> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/chat_rw.js"></script> </head> <body class="container"> <div class="menu">
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'; 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'; $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');
$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');