示例#1
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');
示例#2
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');
示例#3
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();
示例#4
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');