📄 osdatecms.php
字号:
<?php
$osd_root_path = realpath(dirname(__FILE__) . '/../../../') . '/';
require_once($osd_root_path . 'config.php');
include($osd_root_path . 'init.php');
class OSDateCMS {
var $adminUser = false;
var $userid;
var $loginStmt;
var $loginNameStmt;
var $getUserStmt;
var $getUsersStmt;
var $getAdminsStmt;
var $adminLoginStmt;
var $adminLoginNameStmt;
function OSDateCMS() {
$this->userid = NULL;
$this->loginStmt = new Statement("SELECT user.* FROM " . USER_TABLE . " user, " . MEMBERSHIP_TABLE . " member " .
" WHERE user.id=? and user.password=md5(?) AND user.status='Active' AND user.level=member.roleid AND member.chat=1 AND member.enabled='Y' LIMIT 1");
$this->loginNameStmt = new Statement("SELECT user.* FROM " . USER_TABLE . " user, " . MEMBERSHIP_TABLE . " member " .
" WHERE user.username=? and user.password=md5(?) AND user.status='Active' AND user.level=member.roleid AND member.chat=1 AND member.enabled='Y' LIMIT 1");
$this->getUserStmt = new Statement("SELECT user.id AS id, user.username AS login, user.gender FROM " . USER_TABLE . " user, " . MEMBERSHIP_TABLE . " member " .
" WHERE user.id = ? AND user.status='Active' AND user.level=member.roleid AND member.chat=1 AND member.enabled='Y' LIMIT 1");
$this->getAdminsStmt = new Statement("SELECT admin.id AS id, admin.username AS login FROM " . ADMIN_TABLE . " admin, " . ADMIN_RIGHTS_TABLE . " adminrigth " .
" WHERE admin.enabled='Y' AND adminrigth.chat=1 AND adminrigth.chat_mgt=1 AND adminrigth.adminid=admin.id"
);
$this->getUsersStmt = new Statement("SELECT user.id AS id, user.username AS login FROM " . USER_TABLE . " user, " . MEMBERSHIP_TABLE . " member " .
" WHERE user.status='Active' AND user.level=member.roleid AND member.chat=1 AND member.enabled='Y'");
// in addition to NOT having a numeric ID, admin passwords are stored unencrypted...
$this->adminLoginStmt = new Statement("SELECT admin.* FROM " . ADMIN_TABLE . " admin, " . ADMIN_RIGHTS_TABLE . " adminrigth " .
" WHERE admin.id = ? AND admin.password =md5(?) AND admin.enabled='Y' AND adminrigth.chat=1 AND adminrigth.chat_mgt=1 AND adminrigth.adminid=admin.id"
);
$this->adminLoginNameStmt = new Statement("SELECT admin.* FROM " . ADMIN_TABLE . " admin, " . ADMIN_RIGHTS_TABLE . " adminrigth " .
" WHERE admin.username = ? AND admin.password =md5(?) AND admin.enabled='Y' AND adminrigth.chat=1 AND adminrigth.chat_mgt=1 AND adminrigth.adminid=admin.id"
);
}
function isLoggedIn()
{
if ( $_SESSION['UserId'] ) {
if ( isset( $_REQUEST['username'] ) && isset( $_REQUEST['password'] ) ) {
$this->userid = $_SESSION['UserId'];
}
}
else if ( $_SESSION['AdminId'] ) {
if ( isset( $_REQUEST['username'] ) && isset( $_REQUEST['password'] ) ) {
$this->userid = $_SESSION['AdminId'];
$this->adminUser = true;
}
}
return $this->userid;
}
function getRoles()
{
$rv = NULL;
if ($GLOBALS['fc_config']['liveSupportMode'])
$rv = ROLE_CUSTOMER;
elseif ($this->adminUser)
$rv = ROLE_ADMIN;
else
$rv = ROLE_USER;
return $rv;
}
function getUserProfile($userid)
{
if($userid == SPY_USERID) return null;
$v = $this->getUser( $userid );
if ( $v['roles'] == ROLE_ADMIN ) return DOC_ROOT."showprofile.php?id=-1";
return DOC_ROOT."showprofile.php?id=$userid";
}
function getUser($userid) {
$rv = NULL;
if(($rs = $this->getUserStmt->process($userid)) && ($rec = $rs->next())) {
$rec['roles'] = ROLE_USER;
$rv = $rec;
}
elseif ($rs = $this->getAdminsStmt->process())
{
while ($rs->hasNext())
{
$rec = $rs->next();
if ( $userid == $rec['id'] )
{
break;
}
}
$rec['roles'] = ROLE_ADMIN;
$rec['id'] = $rec['id'];
$rec['login'] = $rec['login'];
$rv = $rec;
}
return $rv;
}
function login($login, $password)
{
$this->userid = null;
if($login && $password)
{
if(($rs = $this->loginStmt->process($login, $password )) && ($rec = $rs->next()))
{
$this->userid = $rec['id'];
}
else if(($rs = $this->loginNameStmt->process($login, $password )) && ($rec = $rs->next())) {
$this->userid = $rec['id'];
}
else if(($rs = $this->adminLoginStmt->process($login, $password )) && ($rec = $rs->next())) {
$this->userid = $rec['id'];
}
else if(($rs = $this->adminLoginNameStmt->process($login, $password )) && ($rec = $rs->next())) {
$this->userid = $rec['id'];
}
}
return $this->userid;
}
function userInRole($userid, $role) {
if($user = $this->getUser($userid)) {
return ($user['roles'] & $role) != 0;
}
return false;
}
function logout()
{
$this->userid = null;
}
function getUsers() {
return $this->getUsersStmt->process();
}
function getGender($userid)
{
// 'M' for Male, 'F' for Female, NULL for undefined
if(($rs = $this->getUserStmt->process($userid)) && ($rec = $rs->next()))
{
return strtoupper( $rec['gender'] );
}
return NULL;
}
}
$GLOBALS['fc_config']['db'] = array(
'host' => DB_HOST,
'user' => DB_USER,
'pass' => DB_PASS,
'base' => DB_NAME,
'pref' => DB_PREFIX . "_fc_",//DB_PREFIX
);
$GLOBALS['fc_config']['cms'] = new OSDateCMS();
foreach($GLOBALS['fc_config']['languages'] as $k => $v) {
$GLOBALS['fc_config']['languages'][$k]['dialog']['login']['moderator'] = '';
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -