function myErrorHandler($errno, $errstr, $errfile, $errline) { global $cfg; if (($line = file('./log/errors.php')) === FALSE) { return; } $logkeep = max(10, $GLOBALS['cfg']['max_log']); $logkeep = min(500, $logkeep); unset($line[0]); $line = array_slice($line, 0, $logkeep - 1); array_unshift($line, TimeToDate(time(), true) . " #{$errno} {$errstr} {$errfile}[{$errline}]\r\n"); $line = "<?php die(); ?>\r\n" . implode('', $line); @($fr = fopen('./log/errors.php', 'w')); @flock($fr, LOCK_EX); @fwrite($fr, $line); @fclose($fr); }
//$cfg['qq_types']=explode('|',$cfg['qq_types']); //$m_qq_type=isset($cfg['qq_types'][$mdata['qq_type']]) ? $cfg['qq_types'][$mdata['qq_type']] :'腾讯QQ'; if ($mdata['u_qq'] != '') { $m_qq = $mdata['u_qq']; } else { $m_qq = '----'; } $m_email = $mdata['show_email'] ? "<a href=\"mailto:{$mdata['u_email']}\">{$mdata['u_email']}</a>" : '保密'; $m_website = $mdata['u_website'] == '' ? '无' : "<a href=\"{$mdata['u_website']}\" target=\"_blank\">{$mdata['u_website']}</a>"; $m_avatar = MakeBBAvatar($mdata['u_avatar']); //$m_grade= MakeBBGrade($mdata); $m_tout = GetBBTout($mdata) . '%'; $m_rate = $mdata['g_w'] + $mdata['g_d'] + $mdata['g_l'] == 0 ? 0 : round($mdata['g_w'] * 100 / ($mdata['g_w'] + $mdata['g_d'] + $mdata['g_l']), 1); $m_rate .= '%'; $mdata['reg_date'] = TimeToDate($mdata['reg_date']); $mdata['last_visit'] = TimeToDate($mdata['last_visit']); $buttons = ''; $encodename = urlencode($mdata['u_name']); if ($udata['is_member'] && !IsSameName($name, $udata['u_name'])) { $buttons .= MakeBBButton("room_new.php?byname={$encodename}", '搜索新局'); $buttons .= MakeBBButton("g_search.php?action=list&search_all_user=0&u_name={$encodename}", '搜索棋局'); $buttons .= MakeBBButton("pm_new.php?action=new1&sendto={$encodename}", '发送消息', 500, 220); $buttons .= MakeBBButton("pm_new.php?action=invite1&sendto={$encodename}", '邀请下棋', 500, 220); if (!In_Names($mdata['u_name'], $udata['friends'])) { $buttons .= MakeBBButton("m_fb.php?action=f_add&tname={$encodename}", '加为好友'); } if (!In_Names($mdata['u_name'], $udata['blacklist'])) { $buttons .= MakeBBButton("m_fb.php?action=b_add&tname={$encodename}", '加入黑名单'); } } $m_rec = "{$mdata['g_w']}胜{$mdata['g_d']}平{$mdata['g_l']}负";
ErrorBox('Email 和 用户名不匹配'); } $row = RenDB_Fetch_Array( $result ); if($row['u_id']<1) MessageBox( '发送失败' ); //generate checkcode for new pass $passcheck=md5(uniqid(rand(),true)); $newpass=substr(md5(uniqid(rand(),true)),0,8); //$newpass=uniqid(rand(),true); //write into database $sql = "UPDATE `$cfg[tb_members]` SET new_pass='******', new_pass_check='$passcheck' WHERE u_id='$row[u_id]' LIMIT 1"; RenDB_Query($sql,true); $nowtime=TimeToDate($nowtime,true); //send email eval('$mail_msg= "'.LoadTemplate('email_send_pass').'";'); //echo $mail_msg; //die($cfg['email_subject'].$mail_msg); if(mail($u_email,$cfg['email_subject'],$mail_msg, "From: $cfg[rbb_email]" )) { MessageBox('新的密码已经发到您的邮箱,请查收'); } else { MessageBox('发送失败'); } break;
$link_outbox = $outbox ? HLTxt('■发件箱') : "□<a href=\"pm_view.php?page={$page}&outbox=1\">发件箱</a>"; $box_type = $outbox ? 'out' : 'in'; $cond = $outbox ? " WHERE comefrom='{$udata['u_name']}' " : " WHERE sendto='{$udata['u_name']}' "; $sql = "SELECT COUNT(*) FROM {$cfg['tb_pms']} {$cond}"; $result = RenDB_Query($sql); $row = RenDB_Fetch_Row($result); $pageinfo = MakePageBar("pm_view.php?outbox={$outbox}", $row[0], $cfg['pmperpage'], $page); $sql = "SELECT * FROM {$cfg['tb_pms']} {$cond} ORDER BY pmid DESC LIMIT {$pageinfo['start']},{$cfg['pmperpage']}"; $result = RenDB_Query($sql); $pmlist = ''; $pmnum = 0; if (RenDB_Num_Rows($result) > 0) { $pm_cell = LoadTemplate('pm_cell'); //$endid = 0; while ($pmdata = RenDB_Fetch_Array($result)) { $pmdate = TimeToDate($pmdata['sendtime']); //是收件 $pmnum++; if ($pmnum == $cfg['maxpm']) { $endid = $pmdata['pmid']; } if ($pmnum > $cfg['maxpm'] && !$pmdata['isnew']) { continue; } $pmnew = $pmdata['isnew'] ? HLTxt('*') : ''; //$ignore=''; $reply = $outbox ? ' ' : MakeBBButton("pm_new.php?&action=new1&sendto={$pmdata['comefrom']}", '回复', 550, 250); /* $ignore= ( !In_Names( $pmdata['comefrom'], $udata['blacklist'] )) ? MakeBBButton( "m_man.php?&action=add&name={$pmdata['comefrom']}", '拒收') : '' ; */
$log_name = trim($_POST['log_name']); //删除旧的在线记录 $sql = "DELETE FROM {$cfg['tb_onlines']} WHERE o_time<={$o_deadline} OR o_time>'" . time() . "'"; RenDB_Query($sql, true); $row['u_id'] = 0; $sql = "SELECT u_id,ban_before FROM {$cfg['tb_members']} WHERE u_name='{$log_name}' AND u_pass=MD5('{$log_pass}') LIMIT 1"; $result = RenDB_Query($sql); if (RenDB_Num_Rows($result)) { $row = RenDB_Fetch_Array($result); } if (!$row['u_id']) { WriteBBLog("密码错误 IP:{$userip} 用户名:'{$log_name}'", 'wrongpass'); MessageBox('账号或密码无效'); } if ($row['ban_before'] > $nowtime) { MessageBox('你的账号被冻结到 ' . TimeToDate($row['ban_before'])); } //删除online $sql = "DELETE FROM {$cfg['tb_onlines']} WHERE fake_name='{$udata['fake_name']}'"; RenDB_Query($sql, true); //更新lastlogin和actcheck $actcheck = md5(uniqid(rand())); $sql = "UPDATE {$cfg['tb_members']} SET last_visit='{$nowtime}', act_check='{$actcheck}' WHERE u_name='{$log_name}' LIMIT 1"; RenDB_Query($sql, true); //更新cookies //print("setcookie"); setcookie('cook_name', $log_name); setcookie('cook_pass', md5($log_pass)); //header("Location: index.php"); $lks[] = array("回到主页", 'index'); MessageBox("登陆成功.", $lks);
function WriteBBLog($log, $logname = 'syslog', $insubdir = false) { global $udata; $filename = $insubdir ? "../log/{$logname}.php" : "./log/{$logname}.php"; if (($line = file($filename)) === FALSE) { return; } $logkeep = max(10, $GLOBALS['cfg']['max_log']); $logkeep = min(500, $logkeep); unset($line[0]); $line = array_slice($line, 0, $logkeep - 1); array_unshift($line, TimeToDate(time(), true) . " {$log} \tby {$udata['fake_name']}\r\n"); $line = "<?php die(); ?>\r\n" . implode('', $line); @($fr = fopen($filename, 'w')); @flock($fr, LOCK_EX); @fwrite($fr, $line); @fclose($fr); }
die('Fatal error.'); } SetNoUseCache(); if (!isset($action)) { $action = 'show'; } if (!in_array($action, array('show', 'unban', 'ban'))) { ACP_MessageBox($str['act_err']); } switch ($action) { case 'show': $ban_ips = ''; $sql = "SELECT * FROM `{$cfg['tb_banips']}` ORDER BY ban_time DESC"; $result = RenDB_Query($sql); while ($row = RenDB_Fetch_Array($result)) { $row['ban_time'] = TimeToDate($row['ban_time'], true); $ban_ips .= "<option value=\"{$row['ban_ip']}\">{$row['ban_time']} | {$row['ban_ip']} | {$row['ban_reason']}</option>"; } if ($ban_ips != '') { $ban_ips = "<select style=\"width: 90%\" name=\"ban_ip\">{$ban_ips}</select> <input type=\"submit\" value=\"解禁\" >"; } else { $ban_ips = '目前没有IP被屏蔽'; } ACP_ShowHeader('屏蔽IP'); eval('echo "' . LoadTemplate('ip_man') . '";'); ACP_ShowFooter(); break; case 'ban': if (!isset($ban_ip, $ban_reason)) { ACP_MessageBox($str['act_err']); }
} //$tablename=$old_game?$cfg['tb_oldgames']:$cfg['tb_games']; //$sql="SELECT * FROM `$cfg[tb_games]` $where_sql ORDER BY gid DESC LIMIT"; //echo "$row[0]"; if ($packdown) { require_once './include/tar.class.php'; header("Content-type: /tar.gz"); $filename = md5(uniqid(rand())); header("Content-Disposition: attachment; filename={$filename}.tar.gz"); $tar = new tar(); $sql = "SELECT * FROM `{$cfg['tb_games']}` {$where_sql}"; $result = RenDB_Query($sql); while ($gdata = RenDB_Fetch_Array($result)) { $tar->addPosFile($gdata); } $tar->addInfo('Generated by RBB, ' . TimeToDate(time(), true)); $tar->echoTar(); } else { SetNoUseCache(); $sql = "SELECT COUNT(*) FROM `{$cfg['tb_games']}` {$where_sql}"; $result = RenDB_Query($sql); $row = RenDB_Fetch_Row($result); if (!isset($page)) { $page = 1; } $page = intval($page); $encodename = urlencode($u_name); $pageinfo = MakePageBar("g_search.php?action=list&rules={$rules}&search_time={$search_time}&opening={$opening}&search_all_user={$search_all_user}&u_name={$encodename}&game_status={$game_status}&cp_id={$cp_id}&group_id={$group_id}", $row[0], $cfg['gperpage'], $page); $packdownlink = $row[0] ? "[<a href=\"g_search.php?action=list&rules={$rules}&search_time={$search_time}&opening={$opening}&search_all_user={$search_all_user}&u_name={$encodename}&game_status={$game_status}&cp_id={$cp_id}&group_id={$group_id}&packdown=1\">全部打包下载</a>]" : ''; $sql = "SELECT * FROM `{$cfg['tb_games']}` {$where_sql} ORDER BY {$order_sql} LIMIT {$pageinfo['start']},{$cfg['gperpage']}"; $result = RenDB_Query($sql);
$panel .= '黑超时'; } } elseif ($nostart) { $panel .= "该局将于 " . TimeToDate($gdata['startdate']) . " 开始"; } else { $panel .= " 目前共走了{$mcount}步"; } } //对话 $sql = "SELECT * FROM `{$cfg['tb_chats']}` WHERE gid='{$gid}' ORDER BY chat_id DESC"; $result = RenDB_Query($sql); //$rows=RenDB_Num_Rows($result); $chat_message = ''; while ($chatdata = RenDB_Fetch_Array($result)) { $chat_message .= $chatdata['chat_author'] == '' ? 'Guest ' : "{$chatdata['chat_author']} "; $chat_message .= TimeToDate($chatdata['chat_date'], true); $chat_message .= "\r\n"; $chat_message .= $chatdata['chat_message']; $chat_message .= "\r\n-----------------\r\n"; } $panel .= '<br />'; $panel .= "<textarea rows=\"8\" cols=\"35\" readonly>{$chat_message} </textarea>"; $panel .= "<form method=\"post\" action=\"chat_new.php?&gid={$gid}\"><input type=\"textarea\" size=\"27\" maxlength=\"253\" name=\"message\" /> <input type=\"submit\" value=\"chat\"></form>"; $panel .= '</td></tr></table>'; //自动刷新 if ($cfg['span_refresh_game'] > 0 && $nowtime - $gdata['l_time'] < 1800 && $myside >= 0 && $mems[1 - $myside]['online']) { $statcode = urlencode("{$turnside}{$gdata['swaped']}{$undos[0]}{$undos[1]}{$draws[0]}{$draws[1]}-{$gdata['mcount']}"); //echo $statcode; $frame_auto = "<iframe frameborder=\"0\" width=\"0\" height=\"0\" src=\"auto_refresh.php?gid={$gid}&statcode={$statcode}\"></iframe>"; } else { $frame_auto = '';
if (IsSameName($gdata['b_name'], $udata['u_name'])) { $gcolor = '<img src="./images/black.gif" alt="黑">'; $gopp = MemberLink($gdata['w_name']); } else { $gcolor = '<img src="./images/white.gif" alt="白">'; $gopp = MemberLink($gdata['b_name']); } $gblack = MemberLink($gdata['b_name']); //if( $gdata['w_name'] !='') $gwhite = MemberLink($gdata['w_name']); $gmcount = $mcount; //$bgcolor = $color[ $gnum % 2 ]; $glink = "<a href=\"g_view.php?gid={$gdata['gid']}\">查看</a>"; if ($gdata['startdate'] > $nowtime) { $ginfo = '还未开始'; $gtremain = '开始时间: ' . TimeToDate($gdata['startdate']); $gtstep = ''; } elseif ($gdata['status']) { $ginfo = '已经结束'; switch ($gdata['status']) { case 1: $gtremain = '黑禁手'; break; case 2: $gtremain = '和棋'; break; case 3: $gtremain = '黑胜'; break; case 4: $gtremain = '白胜';
$lks[0] = HLTxt('积分'); break; } //上榜人数 $sql = "SELECT COUNT(*) FROM {$cfg['tb_members']}"; $result = RenDB_Query($sql); $row = RenDB_Fetch_Row($result); $pageinfo = MakePageBar("ranking.php?orderby={$orderby}", $row[0], $cfg['mperpage'], $page); $sql = "SELECT * FROM {$cfg['tb_members']} ORDER BY {$order} LIMIT {$pageinfo['start']},{$cfg['mperpage']}"; $result = RenDB_Query($sql); $mlist = ''; $mnum = 0; if (RenDB_Num_Rows($result) > 0) { $member_cell = LoadTemplate('m_cell'); while ($mdata = RenDB_Fetch_Array($result)) { $morder = $pageinfo['start'] + $mnum + 1; $mname = MemberLink($mdata['u_name']); $mgrade = $mdata['skill']; $mrate = $mdata['g_w'] + $mdata['g_d'] + $mdata['g_l'] == 0 ? 0 : round($mdata['g_w'] * 100 / ($mdata['g_w'] + $mdata['g_d'] + $mdata['g_l']), 1); $mrate .= '%'; $minfo = "{$mdata['g_w']}胜{$mdata['g_d']}平{$mdata['g_l']}负"; $mregtime = TimeToDate($mdata['reg_date']); eval("\$mlist .= \"{$member_cell}\";"); $mnum++; } } else { $glist = "<tr><td colspan=\"7\">(空)</td></tr>"; } ShowHeader('<img src="./images/ranking.gif" /> 用户排名'); eval('echo "' . LoadTemplate("ranking") . '";'); ShowFooter();
} if (!$first) { $onlines .= ', '; } $onlines .= MemberLink($row['fake_name']); $first = false; } if ($guestcount > 0) { if (!$first) { $onlines .= ', '; } $onlines .= "Guest x {$guestcount}</td>"; } //删除旧的在线记录 $sql = "DELETE FROM {$cfg['tb_onlines']} WHERE o_time<={$o_deadline} OR o_time>'" . time() . "'"; RenDB_Query($sql, true); //在线纪录 require_once './cache/onlinerec.php'; if ($onlcount > $maxonline[0]) { $maxonline[0] = $onlcount; $buf = "<?php \$maxonline=array({$onlcount},{$nowtime}); ?>"; $fr = @fopen('./cache/onlinerec.php', 'w'); @flock($fr, LOCK_EX); @fwrite($fr, $buf); @fclose($fr); WriteBBLog("在线人数记录: {$onlcount}"); } $maxonline[1] = TimeToDate($maxonline[1]); ShowHeader('<img src="./images/home.gif" /> ' . $str['main_page']); eval('echo "' . LoadTemplate('main') . '";'); ShowFooter();
$result3 = RenDB_Query($sql); $row = RenDB_Fetch_Row($result3); $total = $row[0]; $sql = "SELECT COUNT(*) FROM `{$cfg['tb_games']}` WHERE cp_id='{$cp_id}' AND status=0"; $result3 = RenDB_Query($sql); $row = RenDB_Fetch_Row($result3); $finished = $total - $row[0]; $buf = '<table style="word-wrap: break-word" width="100%" border="0" cellpadding="4"><tr><td>'; $buf .= "<h2>{$cpdata['cp_name']}</h2>"; $buf .= "<h5>" . TimeToDate($cpdata['starttime']); if ($cpdata['endtime']) { $buf .= ' - ' . TimeToDate($cpdata['endtime']); } $buf .= "</h5>"; $buf .= "<h5>Totally {$total} games, {$finished} finished. [<a href=\"g_search.php?&action=list&cp_id={$cp_id}\">view</a>] [<a href=\"g_search.php?&action=list&cp_id={$cp_id}&packdown=1\">download</a>] </h5>"; $buf .= '<h5>Last update: ' . TimeToDate($nowtime, true) . '</h5>'; $buf .= $cpdata['description']; $sql = "SELECT * FROM `{$cfg['tb_groups']}` WHERE cp_id='{$cp_id}' ORDER BY group_id"; $result = RenDB_Query($sql); $num = 0; while ($gpdata = RenDB_Fetch_Array($result)) { $sql = "SELECT * FROM `{$cfg['tb_players']}` WHERE group_id='{$gpdata['group_id']}' ORDER BY player_id"; $result1 = RenDB_Query($sql); $players = array(); while ($row = RenDB_Fetch_Array($result1)) { $players[] = $row; } //判断是否结束 $sql = "SELECT gid FROM `{$cfg['tb_games']}` WHERE group_id='{$gpdata['group_id']}' AND status=0 LIMIT 1"; $result3 = RenDB_Query($sql); if (RenDB_Num_Rows($result3)) {
} else { $ban_time *= 60; $banbefore = $ban_time + $nowtime; } $sql = "UPDATE {$cfg['tb_members']} SET ban_before='{$banbefore}' WHERE u_name='{$ban_name}' LIMIT 1"; RenDB_Query($sql, true); if ($banbefore == -1) { ACP_WriteLog("冻结账号 {$ban_name} "); ACP_MessageBox("{$ban_name} 永久冻结"); } if ($ban_time <= 0) { ACP_WriteLog("解冻账号 {$ban_name} "); ACP_MessageBox("{$ban_name} 解冻完毕"); } else { ACP_WriteLog("冻结账号 {$ban_name} "); ACP_MessageBox("{$ban_name} 冻结到 " . TimeToDate($banbefore)); } break; case 'ed1': if (!isset($u_name)) { ACP_MessageBox($str['act_err']); } $u_name = trim($u_name); $sql = "SELECT * FROM `{$cfg['tb_members']}` WHERE u_name='{$u_name}' LIMIT 1"; $result = RenDB_Query($sql); if (!($mdata = RenDB_Fetch_Array($result))) { ACP_MessageBox('该用户不存在'); } if (IN_Names($u_name, $cfg['admins'])) { $m_stan = '管理员'; } else {
$page = intval($page); $sql = "SELECT COUNT(*) FROM `{$cfg['tb_competitions']}`"; $result = RenDB_Query($sql); $row = RenDB_Fetch_Row($result); $pageinfo = MakePageBar("cp_list.php?", $row[0], $cfg['gperpage'], $page); $sql = "SELECT * FROM `{$cfg['tb_competitions']}` ORDER BY cp_id DESC LIMIT {$pageinfo['start']},{$cfg['gperpage']}"; $result = RenDB_Query($sql); $cplist = ''; if (RenDB_Num_Rows($result) > 0) { while ($cpdata = RenDB_Fetch_Array($result)) { $cplist .= "<tr bgcolor=\"{$color['cell']}\"><td>"; if (!file_exists("./cpdata/{$cpdata['cp_id']}.html")) { $cplist .= $cpdata['cp_name']; } else { $cplist .= "<a href=\"cp_view.php?cp_id={$cpdata['cp_id']}\">{$cpdata['cp_name']}</a>"; } $cplist .= ' ' . TimeToDate($cpdata['starttime']); if ($cpdata['endtime']) { $cplist .= ' - ' . TimeToDate($cpdata['endtime']); } $cplist .= '<hr />'; $cplist .= $cpdata['description']; $cplist .= "</td></tr>"; } } else { $cplist = "<tr bgcolor=\"{$color['cell']}\"><td>(空)</td></tr>"; } //echo sprintf ( "%01.3f" , GetMicrotime() - $mt0 ); ShowHeader('<img src="./images/renju.gif" /> ' . $str['cp_view']); eval('echo "' . LoadTemplate('cp_list') . '";'); ShowFooter();