コード例 #1
0
ファイル: session.lib.php プロジェクト: mmr/b1n
function b1n_sessionGC($life_time)
{
    global $ses_sql;
    if (isset($_REQUEST['PHPSESSID'])) {
        $ses_id = $_REQUEST['PHPSESSID'];
    } else {
        $ses_id = '';
    }
    $query = "\n    SELECT\n      ses_id, ses_ip,\n      ses_data, ses_last_updated\n    FROM\n      session\n    WHERE\n      (CURRENT_TIMESTAMP - ses_last_updated)::interval >\n        '" . $life_time . "'::interval";
    $rs = $ses_sql->sqlQuery($query);
    if (is_array($rs)) {
        // Logging off
        foreach ($rs as $p) {
            if (strstr($p['ses_data'], 'pla_id')) {
                $pla_id = ereg_replace('.*:"pla_id";s:[0-9]+:"([0-9]+)";.*', '\\1', $p['ses_data']);
                if (!empty($pla_id)) {
                    $aux = "'" . $p['ses_last_updated'] . "'::timestamp + ";
                    $aux .= "'" . $life_time / 2 . " seconds'::interval";
                    b1n_logAction('logoff', array(), $pla_id, 0, $aux);
                    if (b1n_cmp($ses_id, $p['ses_id'])) {
                        global $lang;
                        b1n_retMsg($lang['session_has_expired']);
                        if (!b1n_cmp($_SERVER['REMOTE_ADDR'], $p['ses_ip'])) {
                            b1n_retMsg($lang['log_cheater']);
                        }
                    }
                }
            }
        }
    }
    $query = "\n    DELETE FROM session WHERE\n      (CURRENT_TIMESTAMP - ses_last_updated)::interval >\n        '" . $life_time . "'::interval";
    $ses_sql->sqlQuery($query);
    return true;
}
コード例 #2
0
ファイル: player.lib.php プロジェクト: mmr/b1n
function b1n_playerChangePasswd($data)
{
    global $sql, $lang;
    if (b1n_cmp($data['newpasswd'], $data['newpasswd2'])) {
        b1n_retMsg($lang['player_password_mismatch']);
        return false;
    }
    $query = '
    UPDATE player
    SET
      pla_passwd  = ' . b1n_inBd(b1n_crypt($data['newpasswd'])) . '
    WHERE
      pla_login   = '******'pla_login']) . ' AND
      pla_passwd  = ' . b1n_inBd(b1n_crypt($data['curpasswd']));
    if ($sql->sqlQuery($query)) {
        b1n_retMsg($lang['player_password_success'], array(), b1n_SUCCESS);
    } else {
        b1n_retMsg($lang['player_password_wrong']);
    }
}
コード例 #3
0
ファイル: index.php プロジェクト: mmr/b1n
            $inc[] = $data['page'] . '/index.php';
    }
} else {
    b1n_getVar('login', $data['login']);
    b1n_getVar('passwd', $data['passwd']);
    b1n_getVar('seccode', $data['seccode']);
    b1n_getVar('master', $data['master']);
    b1n_getVar('email', $data['email']);
    // The player is not logged
    if (b1n_cmp($data['page'], 'login')) {
        if (b1n_cmp($data['action'], 'login')) {
            if (b1n_doLogin($data['login'], $data['passwd'], $data['seccode'])) {
                header('Location: ' . b1n_URL);
                exit;
            }
        } elseif (b1n_cmp($data['action'], 'newplayer')) {
            if (b1n_permNewPlayer($data['login'], $data['passwd'], $data['email'], $data['seccode'], $data['master'])) {
                if (b1n_doLogin($data['login'], $data['passwd'], $data['seccode'])) {
                    header('Location: ' . b1n_URL);
                    exit;
                }
            }
        }
    }
    $inc[] = b1n_PATH_INC . '/login.inc.php';
}
// Header
require b1n_PATH_INC . '/header.inc.php';
// Returned Messages
if (sizeof($ret_msgs)) {
    require b1n_PATH_INC . '/ret.inc.php';
コード例 #4
0
ファイル: permission.lib.php プロジェクト: mmr/b1n
function b1n_permNewPlayer($login, $passwd, $email, $seccode, $master)
{
    global $sql, $lang;
    $seccode = b1n_crypt($seccode);
    if (!b1n_cmp($seccode, $_SESSION['seccode'])) {
        $msg = b1n_decrypt($seccode);
        $msg .= ' != ';
        $msg .= b1n_decrypt($_SESSION['seccode']);
        b1n_retMsg($lang['login_err_wrong_code'], array('{code}' => $msg));
        return false;
    }
    if (b1n_permCheckNewPlayer($login, $passwd, $email, $master)) {
        $query = '
      SELECT
        func_newPlayer(
          ' . b1n_inBd($login) . ',
          ' . b1n_inBd(b1n_crypt($passwd)) . ',
          ' . b1n_inBd($email) . ',
          ' . b1n_inBd($master) . ') AS ret';
        $rs = $sql->sqlSingleQuery($query);
        $rs['ret'] = b1n_checkTrue($rs['ret']);
        if ($rs['ret']) {
            b1n_retMsg($lang['unexpected']);
        }
        return $rs['ret'];
    }
    return false;
}
コード例 #5
0
ファイル: checkdata.lib.php プロジェクト: mmr/b1n
function b1n_checkTrue($str)
{
    return b1n_cmp($str, 't');
}
コード例 #6
0
ファイル: map.lib.php プロジェクト: mmr/b1n
function b1n_mapBuildBank($action)
{
    global $sql, $lang;
    $ret = "<form name='f_bank' action='" . b1n_URL . "' method='post'>";
    $ret .= "<input type='hidden' name='page'   value='map' />";
    $ret .= "<select class='i_select' name='action'> ";
    $ret .= "<option value=''>---</option>";
    $ret .= "<option value='deposit_money'" . (b1n_cmp($action, 'deposit_money') ? ' selected="selected"' : '') . ">" . $lang['bank_deposit'] . "</option>";
    $ret .= "<option value='withdraw_money'" . (b1n_cmp($action, 'withdraw_money') ? ' selected="selected"' : '') . ">" . $lang['bank_withdraw'] . "</option>";
    $ret .= "</select> ";
    $ret .= "<input type='text' name='money' class='i_text' size='5' maxlength='5' /> ";
    $ret .= "<input type='submit' value='" . $lang['ok'] . "' class='i_button' /><br />";
    $ret .= "</form>";
    $ret .= "<script type='text/javascript'>document.f_bank.money.focus();</script>";
    if (!empty($_SESSION['player']['pla_bank_money'])) {
        $ret .= '(' . str_replace('{money}', b1n_formatCurrency($_SESSION['player']['pla_bank_money']), $lang['bank_money']) . ')<br />';
    }
    $ret .= '(' . str_replace('{money}', b1n_formatCurrency($_SESSION['player']['pla_money']), $lang['map_label_money']) . ')';
    return $ret;
}
コード例 #7
0
ファイル: history.php プロジェクト: mmr/b1n
<?php

// $Id: history.php,v 1.2 2004/04/12 00:34:26 mmr Exp $
if (is_array($history)) {
    echo '<table><tr><td>&nbsp;</td><td>&nbsp;</td></tr>';
    foreach ($history as $h) {
        echo '<tr>';
        echo '<td><nobr>' . b1n_formatDateHourShow($h['log_add_dt']) . '</nobr></td>';
        $msg = $lang['log_' . $h['log_action']];
        $vars = '';
        if (!empty($h['log_vars'])) {
            $vars = explode(';', $h['log_vars']);
            if (is_array($vars)) {
                foreach ($vars as $var) {
                    list($k, $v) = explode(':', $var);
                    if (b1n_cmp($k, 'money')) {
                        $v = b1n_formatCurrency($v);
                    }
                    $msg = str_replace('{' . $k . '}', $v, $msg);
                }
            }
        }
        echo '<td>' . $msg . '</td>';
        echo '</tr>';
    }
    echo "</table>";
}
コード例 #8
0
ファイル: calc.lib.php プロジェクト: mmr/b1n
function b1n_calcGetValues($ini, $fin, $dates)
{
    global $sql;
    $ini = b1n_formatDate($ini);
    $fin = b1n_formatDate($fin);
    $ret = array();
    $query = "\n    SELECT\n      1 AS number,\n      data\n    FROM\n      sena\n    WHERE\n      data BETWEEN '{$ini}' AND '{$fin}' AND (\n      d1 = 1 OR d2 = 1 OR d3 = 1 OR d4 = 1 OR d5 = 1 OR d6 = 1)";
    for ($i = 2; $i <= 60; $i++) {
        $query .= "\n      UNION (\n        SELECT\n          {$i} AS number,\n          data\n        FROM\n          sena\n        WHERE\n          data BETWEEN '{$ini}' AND '{$fin}' AND (\n          d1 = {$i} OR d2 = {$i} OR d3 = {$i} OR d4 = {$i} OR d5 = {$i} OR d6 = {$i}))";
    }
    $ret = $sql->sqlQuery($query);
    $d = array();
    $aux = $dates;
    $last = array_shift($aux);
    foreach ($ret as $x) {
        $aux = $x['number'];
        $d[$aux][$last] = 100;
        foreach ($dates as $y) {
            if (b1n_cmp($x['data'], $y)) {
                $v = round(sizeof($d[$aux]) / 3);
            } else {
                $v = round(sizeof($d[$aux]) / 3) * -1;
            }
            $d[$aux][$y] = $d[$aux][$last] + $v;
            $last = $y;
        }
    }
    return $d;
}