示例#1
0
<?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;
?>
示例#2
0
<?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">
示例#3
0
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');
示例#4
0
文件: read.php 项目: kiridaruma/Onset
<?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();
示例#5
0
<?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;
示例#6
0
<?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');
示例#7
0
$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');