OSDN Git Service

PHP Notice対応
[trpgtools-onweb/AjaxChat.git] / member_delete.php
1 <?php
2 /*
3  Ajax Chat for TRPG ver.2.6.2
4  (c)2007-2009 Cake All Rights Reserved.
5  Mail : cake_67@users.sourceforge.jp
6  Home : http://trpgtools-onweb.sourceforge.jp/
7  */
8 /*******************
9  *  参加者リストから削除
10  *******************/
11
12 // デバッグ用設定
13 ini_set('log_errors', false);
14 ini_set('error_log', "./php_error.log");
15
16 // 設定ファイルの読み込み
17 require_once './trpgchat-ini.php';
18 require_once './lib/trpgchat.php';
19 require_once './lib/member_check.php';
20
21 // 受信データの成形
22 if (!$request = request()) {
23     error('リクエストを受信できません', true);
24 }
25
26 // 設定セット
27 set_config(read_config());
28
29 // 書き込みブロック
30 write_block();
31
32 // アクセスブロック
33 access_block();
34
35 $name = htmlspecialchars($request['n']);
36 $exe_name = htmlspecialchars($request['en']);
37 if (!$name || $ene_name) {
38     error('名前を入力してください', true);
39 }
40
41 $pwd = create_hash($name, $request['pwd']);
42
43 if (OBFUSCATION) {
44     $name = obf_xor($name);
45 }
46
47 // ファイルロック
48 $lfp = fopen(LOCK2,"w");
49 stream_set_write_buffer($lfp, 0);
50 flock($lfp,LOCK_EX);
51
52 $now_member = get_member_log();
53
54 $delete_flg = false;
55 if (!$now_member) {
56     error_log("参加者がいません");
57 } else {
58
59     // 参加者名チェック
60     foreach($now_member as $k => $v) {
61         if ($name == $v[0]) {
62             // パスワードチェック
63             // マスターパスあるいは合致した場合
64             if ($request['pwd'] == MASTERPASS || $pwd == $v[1]) {
65 //                error_log($request['n']." deleted by ".$exe_name);
66                 $delete_flg = true;
67                 unset($now_member[$k]);
68                 break;
69             }
70         }
71     }
72
73     // ログファイル更新
74     if ($delete_flg) {
75         $fpm = @fopen(NOW_MEMBER, "w+");
76         if (count($now_member) != 0) {
77             foreach($now_member as $k => $v) {
78                 fwrite($fpm, implode($v, "<>"));
79             }
80         }
81
82         //$bom = "\xef\xbb\xbf";
83         //fwrite($fpm, $bom);
84
85         fclose($fpm);
86     }
87 }
88 // ロック解除
89 fflush($lfp);
90 fclose($lfp);
91
92 if ($delete_flg) {
93     $result = "deleted";
94 } else {
95     $result = "not deleted";
96 }
97
98 // return
99 echo $result;
100
101 exit;