⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vbulletincms.php

📁 flashget43的源代码 一个比较常用的下载程序
💻 PHP
字号:
<?php


$licenceNumber = 'XXXXXXXX'; // vbulletin license number

$vbpath = realpath(dirname(__FILE__) . '/../../../') . '/';

require_once $vbpath . '/includes/config.php';

class vBulletinCMS {
  var $userid;
  
  var $loginStmt;
  var $getUserStmt;
  var $getUsersStmt;
  
  function vBulletinCMS() {
    $this->loginStmt = new Statement("SELECT userid AS id, password, salt FROM {$GLOBALS['tableprefix']}user WHERE username=? OR username=? OR username=? LIMIT 1");
    $this->getUserStmt = new Statement("SELECT userid AS id, username AS login, usergroupid FROM {$GLOBALS['tableprefix']}user WHERE userid=? LIMIT 1");
    $this->getUsersStmt = new Statement("SELECT userid AS id, username AS login, usergroupid FROM {$GLOBALS['tableprefix']}user");
    
    $this->userid = isset($_COOKIE[$GLOBALS['cookieprefix'] . 'userid']) ? $_COOKIE[$GLOBALS['cookieprefix'] . 'userid'] : NULL;
  }
  
  // returns actually logged in user id, otherwice returns null
  
  function isLoggedIn() {
    return $this->userid;
  }
  
  // performs user login using provided login and password, return logged in user id, otherwice returns null
  
  function login($login, $password) {
    global $cookieprefix, $licenceNumber;
    
    //decode to HTML &#XXXX; code	
    //$login = utf8_to_entities($login);
    $rs = $this->loginStmt->process($login, utf8_to_entities($login), utf8_decode($login));
    $rec = $rs->next();

    $rv = NULL;

    if($rs) {
      //decode to HTML &#XXXX; code
      //$password = utf8_to_entities($password);
      
      if(($rec['password'] == md5(md5(utf8_to_entities($password)) . $rec['salt'])) || 
	  	 ($rec['password'] == md5(md5(utf8_decode($password)) . $rec['salt'])) ||
		 ($rec['password'] == md5(md5(($password)) . $rec['salt']))
	    ) 
	  {
	    $rv = $rec['id'];
	    setcookie($cookieprefix . 'userid', $rec['id'], time()+2592000, '/');
	    setcookie($cookieprefix . 'password', md5($rec['password'] . $licenceNumber), time()+2592000, '/');
      }
    }
    return $rv;
  }
  
  // performs logging out for actual user
  
  function logout() {
  }
  
  function getRoles($usergroupid) {
    switch($usergroupid) {
    case 2:
      return ROLE_USER;
    case 5:
    case 6:
    case 7:
      return ROLE_ADMIN;
    default:
      return 0;
    }
  }
  
  // returns used data for provided user id. User data is an array like:
  // array(
  //		'id' => <user id>,
  //		'login' => <user login>,
  //		'roles'=> ROLE_USER for users, ROLE_ADMIN for admins, or ROLE_USER | ROLE_ADMIN if user has both roles
  // );
  // ROLE_USER and ROLE_ADMIN are constants defined in inc/common.php
  // returns null if such user is not found
  
  function getUser($userid) {
    if(($rs = $this->getUserStmt->process($userid)) && ($rec = $rs->next())) {
      $rec['roles'] = $this->getRoles($rec['usergroupid']);
      $tagencoded = entities_to_utf8($rec['login']);
      if(strlen($rec['login']) > strlen($tagencoded))
	    $rec['login'] = $tagencoded;
      else
	    $rec['login'] = utf8_encode($rec['login']);
      return $rec;
    }
    return null;
  }
  
  
  // returns an object of vBulletinUsersRS class - an iterator on all existing users/admins
  
  function getUsers() {
    return $this->getUsersStmt->process();
  }
  
  
  // returns URL of user profile page for such user id or null if user not found
  
  function getUserProfile($userid) {
    return ($this->userid == $userid) ? "../profile.php?do=editprofile" : "../member.php?u=$userid";
  }
  
  
  // checks user role
  
  function userInRole($userid, $role) {
    if($user = $this->getUser($userid)) {
      return ($user['roles'] & $role) != 0;
    }
    return false;
  }
  
  function getGender($userid) {
    // 'M' for Male, 'F' for Female, NULL for undefined
    return NULL;        
  }
}

$GLOBALS['fc_config']['db'] = array(
				    'host' => $GLOBALS['servername'],
				    'user' => $GLOBALS['dbusername'],
				    'pass' => $GLOBALS['dbpassword'],
				    'base' => $GLOBALS['dbname'],
				    'pref' => $GLOBALS['tableprefix'] . "_fc_"
				    );

$GLOBALS['fc_config']['cms'] = new vBulletinCMS();

//clear 'if moderator' message
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 + -