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

📄 defaultcms.php

📁 flashget43的源代码 一个比较常用的下载程序
💻 PHP
字号:
<?php
	//The DefaultCMS implementation behaves as usual content management system - i.e. checks provided login/password against system database and uses user roles predefined in it.

	class DefaultCMS {
		var $autocreateUsers = false; //change this to false to disabe nonexisting users auto creation

		var $userid = null;

		var $loginStmt;
		var $getUserStmt;
		var $addUserStmt;
		var $getUsersStmt;
		
		function DefaultCMS() 
		{			
			$this->loginStmt    = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}users WHERE login=? LIMIT 1");
			$this->getUserStmt  = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}users WHERE id=? LIMIT 1");
			$this->addUserStmt  = new Statement("INSERT   INTO {$GLOBALS['fc_config']['db']['pref']}users (login, password, roles) VALUES(?, ?, ?)");
			$this->getUsersStmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}users ORDER BY login");
			$this->delUserStmt  = new Statement("DELETE FROM {$GLOBALS['fc_config']['db']['pref']}users WHERE login=?");
		}

		function isLoggedIn() {
			return $this->userid;
		}

		function login($login, $password) {
			$this->userid = null;
			
			$login = utf8_encode($login);// umlavta fix
			
			if($login && $password)
			{
				$users_rs = $this->getUsers();
				//Try to find user using provided login
				if(($rs = $this->loginStmt->process($login)) && ($rec = $rs->next())) {
					if($rec['password'] == $password || $rec['password'] == md5($password)) $this->userid = $rec['id'];
				} else {
					if(($rec = $users_rs->next()) != null && $password == $GLOBALS['fc_config']['adminPassword'])
					{
					}
					//If not - autocreate user with such login and password
					else if($this->autocreateUsers) {
						$roles = ($password == $GLOBALS['fc_config']['adminPassword'])?ROLE_ADMIN:($GLOBALS['fc_config']['liveSupportMode']?ROLE_CUSTOMER:ROLE_USER);
						$this->userid = $this->addUser($login, $password, $roles);
					}
				}
			}

			return $this->userid;
		}

		function logout(){
			$this->userid = null;
		}
	
		function getUser($userid) {
			if($userid) {
				$rs = $this->getUserStmt->process($userid);
				return $rs->next();
			} else {
				return null;
			}
		}

		function getUsers() {
			return 	$this->getUsersStmt->process();
		}

		function getUserProfile($userid) {
			if($userid == SPY_USERID) return null;

			return "profile.php?userid=$userid";
		}

		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
			$pr      = $this->getUser($userid);
			$profile = unserialize($pr['profile']);
			$gender  = $profile['gender'];
			if(!isset($gender)) $gender = $profile['t43'];
			$ret     = strtoupper(substr($gender, 0, 1));
			
			return ($ret != 'M' && $ret != 'F')? NULL : $ret;
		}
		
		function addUser($login, $password, $roles){
			$user = $this->loginStmt->process($login);
			if(($rec = $user->next()) != null) return $rec['id'];
			
			if( $GLOBALS['fc_config']['encryptPass'] > 0 ) $password = md5($password);//encrypt password
						
			return $this->addUserStmt->process($login, $password, $roles);
		}
		
		function deleteUser($login){
			$this->delUserStmt->process($login);
		}
	
	}

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

	//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 + -