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';
20 require_once './lib/mobile.php';
23 set_config(read_config());
27 mobile_error('携帯から利用できません。');
31 require_once './lib/trpg.php';
35 if (!is_mobile_access($ua)) {
36 mobile_error('携帯以外からはご利用できません。');
46 if (!$request = $_GET) {
47 mobile_error('データ受信できません');
50 // PL名・コメントがなければ書込みはできない(含ロボット対策)
51 if ((!$request['n'] && !$request['c']) || !$request['m']) mobile_error("書きこみできません");
54 $lfp = fopen(LOCK,"w");
55 stream_set_write_buffer($lfp, 0);
60 $log[] = file(RECENT_LOG);
63 foreach($request as $k => $v) {
64 $data[$k] = htmlspecialchars($v);
68 if ($request['mode'] == 'logout') {
69 $data = set_mobile_logout_data($data);
72 } elseif (!$data['c']) {
73 $data['c'] = $data['n'];
76 $login_data = set_mobile_login_data($data);
78 $data['n'] = $data['c'];
79 // PL名チェック:現状なし(入れる場合、UAチェックなど必要)
82 // コメント本文の処理:(予定)ダイス、カード、タグ有効[b,span,i,u]、オートリンク、禁止語句処理など
87 $data['m'] = convert_dice($data['m']);
91 $data['m'] = convert_html_tag($data['m']);
94 $data['m'] = convert_autolink($data['m']);
101 foreach ($log[0] as $k => $v){
102 $temp[$k] = explode("<>", $v);
111 $last_id = $temp[0][0]+1;
117 if ($request['mode'] != 'logout' && !empty($login_data)) {
118 $log = mobile_set_log($login_data, $log, $last_id, $host, $ua, true);
120 $log = mobile_set_log($data, $log, $last_id, $host, $ua, $request['mode']);
123 $fp = @fopen(RECENT_LOG, "w+") or error("ログファイルを開けません。", true);
124 //$bom = "\xef\xbb\xbf";
127 foreach($log[0] as $k => $v) {
139 //member_checker($dn, $pwd, $request['y'], true);
142 $params = '/mindex.php';
143 $self_url = get_self_url();
145 if ($request['mode'] == 'logout') {
146 $params .= '?msg='.urlencode('ログアウトしました');
147 $params .= '&mode=logout';
148 $url = str_replace('/mwrite.php', '', $self_url).$params;
149 header('Location: '. $url);
152 $params .= '?c='.urlencode(encode2utf8($data['c'])).'&r='.$data['r'];
153 $url = str_replace('/mwrite.php', '', $self_url).$params;
154 header('Location: '. $url);
161 function mobile_set_log($data, $log, $last_id, $host, $ua, $system=false)
166 $pcname = $data['c'];
168 $pwd = ''; // パスワード:なし
170 $data['l'] = COLOR_SYSTEM; // システム文字色
172 $data['l'] = ''; // PC文字色:
176 $dh = ''; // ステータス表示有無
180 $pcname = obf_xor(encode2utf8($pcname));
181 $dm = obf_xor(encode2utf8($dm));
182 $dn = obf_xor(encode2utf8($dn));
183 if ($dw) $dw = obf_xor(encode2utf8($dw));
184 if ($dt) $dt = obf_xor(encode2utf8($dt));
187 $write = $last_id."<>".$dn."<>".$pcname."<>".$data['l']."<>".$dm."<>".time()."<>".$host."<>".$ua."<>".$pwd."<>".$dw."<>".$dh."<>".$data['s']."<>".$dt."<>1\n";
191 write_recent_past(encode2utf8($write), PAST_LOG);
194 array_unshift($log[0], encode2utf8($write));
197 if (count($log[0]) >= MAX_NUM) {
207 function set_mobile_login_data($data)
209 $data['c'] = encode2sjis(SYSTEM);
210 $data['m'] = $data['n'].encode2sjis(ONLINE_MSG);
219 function set_mobile_logout_data($data)
221 $data['c'] = encode2sjis(SYSTEM);
222 $data['m'] = $data['n'].encode2sjis(OFFLINE_MSG);
228 function encode2sjis($str)
230 return mb_convert_encoding($str, 'SJIS-win', 'UTF-8');
234 function encode2utf8($str)
236 return mb_convert_encoding($str, 'UTF-8', 'SJIS-win');