3 Ajax Chat for TRPG ver.2.6.1
4 (c)2007-2009 Cake All Rights Reserved.
5 Mail : cake_67@users.sourceforge.jp
6 Home : http://trpgtools-onweb.sourceforge.jp/
12 ini_set('log_errors', false);
13 ini_set('error_log', "./php_error.log");
16 require_once './trpgchat-ini.php';
17 require_once './lib/trpgchat.php';
18 require_once './lib/write.php';
19 require_once './lib/member_check.php';
22 set_config(read_config());
24 require_once './lib/trpg.php';
29 $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
30 $ua = getenv("HTTP_USER_AGENT");
40 if (!$request = $_GET) {
44 // PL名・コメントがなければ書込みはできない(含ロボット対策)
45 if (!$request['n']) error("書きこみできません");
46 if (($request['y'] != 'in' && $request['y'] != 'out') && $request['m'] == '') error("書きこみできません。");
49 $lfp = fopen(LOCK,"w");
50 stream_set_write_buffer($lfp, 0);
55 $log[] = file(RECENT_LOG);
58 foreach($request as $k => $v) {
59 $data[$k] = htmlspecialchars($v);
62 if (!$data['c']) $data['c'] = $data['n'];
64 // コメント本文の処理:(予定)ダイス、カード、タグ有効[b,span,i,u]、オートリンク、禁止語句処理など
68 $data['m'] = convert_dice($data['m']);
70 if ($data['s'] && $data['t']) {
71 $data['t'] = convert_dice($data['t']);
75 $data['m'] = convert_html_tag($data['m']);
76 if ($data['s'] && $data['t']) {
77 $data['t'] = convert_html_tag($data['t']);
80 $data['m'] = convert_autolink($data['m']);
81 if ($data['s'] && $data['t']) {
82 $data['t'] = convert_autolink($data['t']);
90 foreach ($log[0] as $k => $v){
91 $temp[$k] = explode("<>", $v);
100 $last_id = $temp[0][0]+1;
108 if ($data['y'] =='in') {
110 $data['m'] = $data['n'].ONLINE_MSG;
111 $data['l'] = COLOR_SYSTEM;
114 } elseif ($data['y'] == 'out') {
116 $data['m'] = $data['n'].OFFLINE_MSG;
117 $data['l'] = COLOR_SYSTEM;
120 } elseif ($data['y'] == 'card') {
122 $data['m'] = $data['n'].'さんが'.$data['m'];
123 $data['l'] = COLOR_SYSTEM;
126 $pcname = $data['c'];
128 if ($data['n'] && $data['p']) {
129 $pwd = create_hash($data['n'],$data['p']);
139 $pcname = obf_xor($pcname);
142 if ($dw) $dw = obf_xor($dw);
143 if ($dt) $dt = obf_xor($dt);
147 $write = $last_id."<>".$dn."<>".$pcname."<>".$data['l']."<>".$dm."<>".time()."<>".$host."<>".$ua."<>".$pwd."<>".$dw."<>".$dh."<>".$data['s']."<>".$dt."<>\n";
149 array_unshift($log[0], $write);
152 if (count($log[0]) >= MAX_NUM) {
157 $fp = @fopen(RECENT_LOG, "w+") or error("ログファイルを開けません。", true);
158 //$bom = "\xef\xbb\xbf";
161 foreach($log[0] as $k => $v) {
168 write_recent_past($write, PAST_LOG);
175 member_checker($dn, $pwd, $request['y'], false);