Ir para conteúdo
  • 0

[Help] Site não entra error na database


LeoTK

Pergunta

eae galera então fazia tempo que não mexia com meu site resolvi mexer um pouco nele e apareceu o seguinte erro

 

TBO2XIH.png

 

os arquivos estão editados corretamente

 

Spoiler

<?php
/*These configs are neccessary in order to make Modern AAC work.
*/

/*URL of website including http:// and without slash at the end! 

*/
$config['website'] = $config['website'] = 'http://'.$_SERVER['HTTP_HOST'] . 
'/'.trim(dirname($_SERVER['SCRIPT_NAME']), '/.\\');

/*Database information*
/
$config['database']['host'] = "localhost";

$config['database']['login'] = "root";

$config['database']['password'] = "****";

$config['database']['database'] = "banco de dados";
 

/*Name of server*/

$config['server_name'] = "Nto New Season";
 

// Sistema automatico Pagseguro by ADM Master
// Seu email cadastrado no pagseguro
$config['pagseguro']['email'] = 'ntons@live.com';
 
// Nome do Produto
$config['pagseguro']['produtoNome'] = 'Nto Points';
 
// Valor unitario do produto ou seja valor de cada ponto
// Exemplo de valores
// 10 = R$ 10,00
// 20 = R$ 20,00
// 40 = R$ 40,00
// 80 = R$ 80,00
$config['pagseguro']['produtoValor'] = '100'; 
 
// Token gerado no painel do pagseguro
$config['pagseguro']['token'] = 'B81CB98D3E6E40C9B96C3F39A8BC12CE';  
/*End of most important configs*/
 
/*List of cities, declare by using city ID and name eg. 2=>"Nto Ns" etc.*/
$config['cities'] = array(1 =>'Konoha', 2 =>'Suna', 3 =>'Mist');
 
/* Simple ticket system */
$config['newsTickerLimit'] = 4; 
$config['newsTickerWords'] = 4;  
 
/*List of vocation available to choose when creating new character*/
$config['vocations'] = array(1=>"Naruto", 13=>"Sasuke", 25=>"Lee", 34=>"Sakura", 50=>"Gaara", 70=>"Neji", 90=>"Kiba", 110=>"Shikamaru", 130=>"Hinata", 150=>"Tenten", 210=>"Madara", 220=>"Obito", 290=>"Kankuro", 320=>"Temari", 190=>"Killer Bee", 200=>"Kakashi");
 
 
/*List of vocation that exists on server*/
$config['server_vocations'] = array(1=>"Naruto", 13=>"Sasuke", 25=>"Lee", 34=>"Sakura", 50=>"Gaara", 70=>"Neji", 90=>"Kiba", 110=>"Shikamaru", 130=>"Hinata", 150=>"Tenten", 210=>"Madara", 220=>"Obito", 290=>"Kankuro", 320=>"Temari", 190=>"Killer Bee", 200=>"Kakashi");
 
/*List of promotions, the key is vocation without promotion*/
$config['promotions'] = array(1=>"Master Sorcerer", 2=>"Elder Druid", 3=>"Royal Paladin", 4=>"Elite Knight");
 
/*Resitricted names*/
$config['restricted_names'] = array("god", "gamemaster", "admin", "account manager");
 
/*Names with any of this value cannot be created*/
$config['invalidNameTags'] = array("god", "gm", "cm", "gamemaster", "hoster", "admin");
 
 
/*ID and names of worlds*/
$config['worlds'][0] = "Nto New Season";
 
// Enable multiworld by uncommenting this
//$config['worlds'][1] = "Second World";
 
/* Addresses of each server */
$config['servers'][0] = array('address'=>'127.0.0.1', 'port'=>7171, 'vapusid'=>'%VAPUS_ID%');
 
// Enable multiworld by uncommenting this
//$config['servers'][1] = array('address'=>'127.0.0.1', 'port'=>7173, 'vapusid' => 'XXX');
 
/*Groups that exists on server*/
$config['groups'] = array(0=>"Player", 1=>"Player", 2=>"Tutor", 3=>"Senior Tutor", 4=>"Gamemaster", 5=>"Community Manager", 6=>"God");
 
 
/*Names of vocations as in database as samples. First key is world id and second vocation id.*/
$config['newchar_vocations'][0][1] = "Naruto Sample";
$config['newchar_vocations'][0][13] = "Sasuke Sample";
$config['newchar_vocations'][0][25] = "Lee Sample";
$config['newchar_vocations'][0][34] = "Sakura Sample";
$config['newchar_vocations'][0][50] = "Gaara Sample";
$config['newchar_vocations'][0][70] = "Neji Sample";
$config['newchar_vocations'][0][90] = "Kiba Sample";
$config['newchar_vocations'][0][110] = "Shikamaru Sample";
$config['newchar_vocations'][0][130] = "Hinata Sample";
$config['newchar_vocations'][0][150] = "Tenten Sample";
$config['newchar_vocations'][0][210] = "Madara Sample";
$config['newchar_vocations'][0][220] = "Obito Sample";
$config['newchar_vocations'][0][290] = "Kankuro Sample";
$config['newchar_vocations'][0][320] = "Temari Sample";
$config['newchar_vocations'][0][190] = "Killer Bee Sample";
$config['newchar_vocations'][0][200] = "Kakashi Sample";
$config['newchar_vocations'][1][1] = "Naruto Sample";
$config['newchar_vocations'][13][13] = "Sasuke Sample";
$config['newchar_vocations'][25][25] = "Lee Sample";
$config['newchar_vocations'][34][34] = "Sakura Sample";
$config['newchar_vocations'][50][50] = "Gaara Sample";
$config['newchar_vocations'][70][70] = "Neji Sample";
$config['newchar_vocations'][90][90] = "Kiba Sample";
$config['newchar_vocations'][110][110] = "Shikamaru Sample";
$config['newchar_vocations'][130][130] = "Hinata Sample";
$config['newchar_vocations'][150][150] = "Tenten Sample";
$config['newchar_vocations'][210][210] = "Madara Sample";
$config['newchar_vocations'][220][220] = "Obito Sample";
$config['newchar_vocations'][290][290] = "Kankuro Sample";
$config['newchar_vocations'][320][320] = "Temari Sample";
$config['newchar_vocations'][190][190] = "Killer Bee Sample";
$config['newchar_vocations'][200][200] = "Kakashi Sample";

/*Don't show chaarcters with group id higher than*/
$config['players_group_id_block'] = 3;


/*Min. level to create guild*/
$config['levelToCreateGuild'] = 100;


/*Limit of latest deaths*/
$config['latestdeathlimit'] = 20;

/*Limit news per page*/
$config['newsLimit'] = 10;

/*Limit comments per page*/
$config['commentLimit'] = 10;

/*Template that should be used on website*/
$config['layout'] = "naruto";

/*Title of a website*/
$config['title'] = "NtoNS - by Wesley!";


/*Premdays given when creating new account.*/
$config['premDays'] = 0;


/*Positions to start when creating character*/
$startPos['x'] = 1026;
$startPos['y'] = 910;
$startPos['z'] = 7;


/*Trigger password for scaffolding system.*/
$config['scaffolding_trigger'] = "password";

/*Minimum page access for admin priviliges*/
$config['adminAccess'] = 5;

/*Max threads per page*/
$config['threadsLimit'] = 10;

/*Max posts per page in a thread*/
$config['postsLimit'] = 10;

/*Time between posts*/
$config['timeBetweenPosts'] = 30;

/*Limit of submissions per page in bug tracker*/
$config['bugtrackerPageLimit'] = 10;

/*Limit of houses on listing page*/
$config['housesLimit'] = 10;

/*Level to buy house*/
$config['houseLevel'] = 50;

/*Lenght of housing auction in seconds*/
$config['houseAuctionTime'] = 604800;

/*Default timezone*/
$config['timezone'] = "Europe/London";

/*Allowed IPs to use command prompt in admin panel*/
$config['allowedToUseCMD'] = array("127.0.0.1", "localhost");

/* Path to your UI theme */
$config['UItheme'] = "smoothness/jquery-ui-1.7.2.custom.css";

/*Destination to guilds logos folder, must be writable.*/
$config['uploads'] = "/public/guild_logos/";

/* Status timeout (recheck if server is online) */
$config['statusTimeout'] = 1 + (5 * 60); // Default to 5min

/* Wrap words longer than */
$config['wrap_words'] = 80;

/*Limit comments per page in videos view*/
$config['videoCommentsLimit'] = 10;

/*Limit of videos to show while searching*/
$config['videoSearchLimit'] = 10;

/*Maximum amount of characters per account*/
$config['maxCharacters'] = 50;

/*Limit of inbox/outbox messages per page*/
$config['messagesLimit'] = 10;

/*Amount of names to be saved when looking for characters*/
$config['characterSearchLimit'] = 10;

/*Switch on Admin Window*/
$config['adminWindow'] = true;

/*Integrate facebook to AAC? (TRUE/FALSE)*/
$config['facebook'] = true;

/*Max amount of saved actions*/
$config['actionsCount'] = 15;

/*Player per page in hishscore */
$config['highscore']['per_page'] = 15;

/*Total players to show in highscores*/
$config['highscore']['total'] = 300;


/* Guild board creation */
$config['guildboardTitle'] = "Guildboard for %NAME%";
$config['guildboardDescription'] = "This is the guildboard for the great %NAME% guild!";

/* VAPus Settings */
$config['VAPusGraphStep'] = 1; // step * update time = time steps on graph, etc 6 with an update time of 10min = one hour

//Enable delay between creating characters
$config['characterDelay'] = true;

//Time between creating characters in seconds
$config['characterDelayTime'] = 240;

//Enable delay between creating accounts
$config['accountDelay'] = true;

//Time between creating accounts in seconds
$config['accountDelayTime'] = 240;

//Account restrictions
$config['restrictedAccounts'] = array('1'); 

############EVENTS############

# Event fired just after main framework to gain access to all features
$config['onLoad'] = array();

# Event fired after all finished loading no headers should be sent
$config['onReady'] = array();


#############################

/*
######################################################################################################################
 * Do not touch any of the configs below if you are not 100% sure what you are doing!
 * These are config to the engine, usually the default ones works well so no change needed for unexperienced users.
######################################################################################################################
*/
// Tiny hack to figure if we use Windows or not.
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') @define('USING_WINDOWS', 1);
else @define('USING_WINDOWS', 0);

if(USING_WINDOWS) $config['engine']['PHPversion'] = "5.3.0";
else $config['engine']['PHPversion'] = "5.3.0";
$config['engine']['indexPage'] = "index.php";
$config['engine']['uri_protocol'] = "AUTO";
$config['engine']['charSET'] = "UTF-8";
$config['engine']['enable_hooks'] = FALSE;
$config['engine']['permitted_uri_chars'] = "a-z 0-9~%.:_\-'+";
$config['engine']['enable_query_strings'] = FALSE;
$config['engine']['global_xss_filtering'] = TRUE;
$config['engine']['compress_output'] = FALSE;
$config['engine']['proxy_ip'] = "";
$config['engine']['autoload_libraries'] = array();
$config['engine']['autoload_helper'] = array();
$config['engine']['autoload_plugin'] = array();
$config['engine']['autoload_config'] = array();
$config['engine']['autoload_model'] = array();
$config['engine']['default_controller'] = "home";
$config['engine']['platforms'] = array('windows nt 6.0' => 'Windows Longhorn', 'windows nt 5.2' => 'Windows 2003', 'windows nt 5.0' => 'Windows 2000', 'windows nt 5.1' => 'Windows XP', 'windows nt 4.0' => 'Windows NT 4.0', 'winnt4.0' => 'Windows NT 4.0', 'winnt 4.0' => 'Windows NT', 'winnt' => 'Windows NT', 'windows 98' => 'Windows 98', 'win98' => 'Windows 98', 'windows 95' => 'Windows 95', 'win95' => 'Windows 95', 'windows' => 'Unknown Windows OS', 'os x' => 'Mac OS X', 'ppc mac' => 'Power PC Mac', 'freebsd' => 'FreeBSD', 'ppc' => 'Macintosh', 'linux' => 'Linux', 'debian' => 'Debian', 'sunos' => 'Sun Solaris', 'beos' => 'BeOS', 'apachebench' => 'ApacheBench', 'aix' => 'AIX', 'irix' => 'Irix', 'osf' => 'DEC OSF', 'hp-ux' => 'HP-UX', 'netbsd' => 'NetBSD', 'bsdi' => 'BSDi', 'openbsd' => 'OpenBSD', 'gnu' => 'GNU/Linux', 'unix' => 'Unknown Unix OS' );
$config['engine']['mobiles'] = array('mobileexplorer' => 'Mobile Explorer', 'palmsource' => 'Palm', 'palmscape' => 'Palmscape', 'motorola' => "Motorola", 'nokia' => "Nokia", 'palm' => "Palm", 'iphone' => "Apple iPhone", 'ipod' => "Apple iPod Touch", 'sony' => "Sony Ericsson", 'ericsson' => "Sony Ericsson", 'blackberry' => "BlackBerry", 'cocoon' => "O2 Cocoon", 'blazer' => "Treo", 'lg' => "LG", 'amoi' => "Amoi", 'xda' => "XDA", 'mda' => "MDA", 'vario' => "Vario", 'htc' => "HTC", 'samsung' => "Samsung", 'sharp' => "Sharp", 'sie-' => "Siemens", 'alcatel' => "Alcatel", 'benq' => "BenQ", 'ipaq' => "HP iPaq", 'mot-' => "Motorola", 'playstation portable' => "PlayStation Portable", 'hiptop' => "Danger Hiptop", 'nec-' => "NEC", 'panasonic' => "Panasonic", 'philips' => "Philips", 'sagem' => "Sagem", 'sanyo' => "Sanyo", 'spv' => "SPV", 'zte' => "ZTE", 'sendo' => "Sendo", 'symbian' => "Symbian", 'SymbianOS' => "SymbianOS", 'elaine' => "Palm", 'palm' => "Palm", 'series60' => "Symbian S60", 'windows ce' => "Windows CE", 'obigo' => "Obigo", 'netfront' => "Netfront Browser", 'openwave' => "Openwave Browser", 'mobilexplorer' => "Mobile Explorer", 'operamini' => "Opera Mini", 'opera mini' => "Opera Mini", 'digital paths' => "Digital Paths", 'avantgo' => "AvantGo", 'xiino' => "Xiino", 'novarra' => "Novarra Transcoder", 'vodafone' => "Vodafone", 'docomo' => "NTT DoCoMo", 'o2' => "O2", 'mobile' => "Generic Mobile", 'wireless' => "Generic Mobile", 'j2me' => "Generic Mobile", 'midp' => "Generic Mobile", 'cldc' => "Generic Mobile", 'up.link' => "Generic Mobile", 'up.browser' => "Generic Mobile", 'smartphone' => "Generic Mobile", 'cellphone' => "Generic Mobile" );
$config['engine']['robots'] = array('googlebot' => 'Googlebot', 'msnbot' => 'MSNBot', 'slurp' => 'Inktomi Slurp', 'yahoo' => 'Yahoo', 'askjeeves' => 'AskJeeves', 'fastcrawler' => 'FastCrawler', 'infoseek' => 'InfoSeek Robot 1.0', 'lycos' => 'Lycos' );
$config['engine']['browsers'] = array('Opera' => 'Opera', 'MSIE' => 'Internet Explorer', 'Internet Explorer' => 'Internet Explorer', 'Shiira' => 'Shiira', 'Firefox' => 'Firefox', 'Chimera' => 'Chimera', 'Phoenix' => 'Phoenix', 'Firebird' => 'Firebird', 'Camino' => 'Camino', 'Netscape' => 'Netscape', 'OmniWeb' => 'OmniWeb', 'Safari' => 'Safari', 'Mozilla' => 'Mozilla', 'Konqueror' => 'Konqueror', 'icab' => 'iCab', 'Lynx' => 'Lynx', 'Links' => 'Links', 'hotjava' => 'HotJava', 'amaya' => 'Amaya', 'IBrowse' => 'IBrowse' );
$config['engine']['mimes'] = array('hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'csv' => array ('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel' ), 'bin' => 'application/macbinary', 'dms' => 'application/octet-stream', 'lha' => 'application/octet-stream', 'lzh' => 'application/octet-stream', 'exe' => 'application/octet-stream', 'class' => 'application/octet-stream', 'psd' => 'application/x-photoshop', 'so' => 'application/octet-stream', 'sea' => 'application/octet-stream', 'dll' => 'application/octet-stream', 'oda' => 'application/oda', 'pdf' => array ('application/pdf', 'application/x-download' ), 'ai' => 'application/postscript', 'eps' => 'application/postscript', 'ps' => 'application/postscript', 'smi' => 'application/smil', 'smil' => 'application/smil', 'mif' => 'application/vnd.mif', 'xls' => array ('application/excel', 'application/vnd.ms-excel', 'application/msexcel' ), 'ppt' => array ('application/powerpoint', 'application/vnd.ms-powerpoint' ), 'wbxml' => 'application/wbxml', 'wmlc' => 'application/wmlc', 'dcr' => 'application/x-director', 'dir' => 'application/x-director', 'dxr' => 'application/x-director', 'dvi' => 'application/x-dvi', 'gtar' => 'application/x-gtar', 'gz' => 'application/x-gzip', 'php' => 'application/x-httpd-php', 'php4' => 'application/x-httpd-php', 'php3' => 'application/x-httpd-php', 'phtml' => 'application/x-httpd-php', 'phps' => 'application/x-httpd-php-source', 'js' => 'application/x-javascript', 'swf' => 'application/x-shockwave-flash', 'sit' => 'application/x-stuffit', 'tar' => 'application/x-tar', 'tgz' => 'application/x-tar', 'xhtml' => 'application/xhtml+xml', 'xht' => 'application/xhtml+xml', 'zip' => array ('application/x-zip', 'application/zip', 'application/x-zip-compressed' ), 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'mpga' => 'audio/mpeg', 'mp2' => 'audio/mpeg', 'mp3' => array ('audio/mpeg', 'audio/mpg' ), 'aif' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'ram' => 'audio/x-pn-realaudio', 'rm' => 'audio/x-pn-realaudio', 'rpm' => 'audio/x-pn-realaudio-plugin', 'ra' => 'audio/x-realaudio', 'rv' => 'video/vnd.rn-realvideo', 'wav' => 'audio/x-wav', 'bmp' => 'image/bmp', 'gif' => 'image/gif', 'jpeg' => array ('image/jpeg', 'image/pjpeg' ), 'jpg' => array ('image/jpeg', 'image/pjpeg' ), 'jpe' => array ('image/jpeg', 'image/pjpeg' ), 'png' => array ('image/png', 'image/x-png' ), 'tiff' => 'image/tiff', 'tif' => 'image/tiff', 'css' => 'text/css', 'html' => 'text/html', 'htm' => 'text/html', 'shtml' => 'text/html', 'txt' => 'text/plain', 'text' => 'text/plain', 'log' => array ('text/plain', 'text/x-log' ), 'rtx' => 'text/richtext', 'rtf' => 'text/rtf', 'xml' => 'text/xml', 'xsl' => 'text/xml', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'qt' => 'video/quicktime', 'mov' => 'video/quicktime', 'avi' => 'video/x-msvideo', 'movie' => 'video/x-sgi-movie', 'doc' => 'application/msword', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'word' => array ('application/msword', 'application/octet-stream' ), 'xl' => 'application/excel', 'eml' => 'message/rfc822' );
$config['engine']['doctypes'] = array('xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">', 'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">', 'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">', 'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">', 'html5' => '<!DOCTYPE html>', 'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">', 'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">', 'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">' );
$config['engine']['url_suffix'] = ".ide";
$config['engine']['sess_cookie_name'] = 'ci_session';
$config['engine']['sess_expiration'] = 7200;
$config['engine']['sess_encrypt_cookie'] = FALSE;
$config['engine']['sess_use_database'] = FALSE;
$config['engine']['sess_table_name'] = 'ci_sessions';
$config['engine']['sess_match_ip'] = FALSE;
$config['engine']['sess_match_useragent'] = TRUE;
$config['engine']['sess_time_to_update'] = 300;
$config['engine']['rewrite_short_tags'] = false;
if(USING_WINDOWS == 1) {
//Load management is not available on Windows.
$config['engine']['loadManagement'] = false;
} else {
//Load management is a maximum ammount of processes website is using. If the website is flooded it will drop connection with users outside this amount.
$config['engine']['loadManagement'] = false;
$config['engine']['maxLoad'] = 60;
}

/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| If you have enabled error logging, you can set an error threshold to 
| determine what gets logged. Threshold options are:
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
|    0 = Disables logging, Error logging TURNED OFF
|    1 = Error Messages (including PHP errors)
|    2 = Debug Messages
|    3 = Informational Messages
|    4 = All Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['engine']['log_threshold'] = 0;


#DON'T TOUCH! DECLARING CONSTANS!
@DEFINE('LEVELTOCREATEGUILD', $config['levelToCreateGuild']);
@DEFINE('PREMDAYS', $config['premDays']);
@DEFINE('HOSTNAME', $config['database']['host']);
@DEFINE('USERNAME', $config['database']['login']);
@DEFINE('PASSWORD', $config['database']['password']);
@DEFINE('DATABASE', $config['database']['database']);
@DEFINE('WEBSITE', $config['website']);
?>
 

editei a senha e o banco de dados para segurança mas os dois estão certinhos na database

 

alguem pode me dizer o que pode estar havendo?

#edit

 

está aparecendo este erro

 

Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\system\libraries\Loader.php on line 1087

 

loader.php

Spoiler

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 4.3.2 or newer
 *
 * @package        CodeIgniter
 * @author        ExpressionEngine Dev Team
 * @copyright    Copyright © 2008 - 2009, EllisLab, Inc.
 * @license       http://codeigniter.com/user_guide/license.html
 * @link       http://codeigniter.com
 * @since        Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------

/**
 * Loader Class
 *
 * Loads views and files
 *
 * @package        CodeIgniter
 * @subpackage    Libraries
 * @author        ExpressionEngine Dev Team
 * @category    Loader
 * @link       http://codeigniter.com/user_guide/libraries/loader.html
 */
class CI_Loader {

    // All these are set automatically. Don't mess with them.
    var $_ci_ob_level;
    var $_ci_view_path        = '';
    var $_ci_is_php5        = FALSE;
    var $_ci_is_instance     = FALSE; // Whether we should use $this or $CI =& get_instance()
    var $_ci_cached_vars    = array();
    var $_ci_classes        = array();
    var $_ci_loaded_files    = array();
    var $_ci_models            = array();
    var $_ci_helpers        = array();
    var $_ci_plugins        = array();
    var $_ci_varmap            = array('unit_test' => 'unit', 'user_agent' => 'agent');
    

    /**
     * Constructor
     *
     * Sets the path to the view files and gets the initial output buffering level
     *
     * @access    public
     */
    function CI_Loader()
    {    
        $this->_ci_is_php5 = (floor(phpversion()) >= 5) ? TRUE : FALSE;
        $this->_ci_view_path = APPPATH.'views/';
        $this->_ci_ob_level  = ob_get_level();
                
        log_message('debug', "Loader Class Initialized");
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Class Loader
     *
     * This function lets users load and instantiate classes.
     * It is designed to be called from a user's app controllers.
     *
     * @access    public
     * @param    string    the name of the class
     * @param    mixed    the optional parameters
     * @param    string    an optional object name
     * @return    void
     */    
    function library($library = '', $params = NULL, $object_name = NULL)
    {
        if ($library == '')
        {
            return FALSE;
        }

        if ( ! is_null($params) AND ! is_array($params))
        {
            $params = NULL;
        }

        if (is_array($library))
        {
            foreach ($library as $class)
            {
                $this->_ci_load_class($class, $params, $object_name);
            }
        }
        else
        {
            $this->_ci_load_class($library, $params, $object_name);
        }
        
        $this->_ci_assign_to_models();
    }

    // --------------------------------------------------------------------
    
    /**
     * Model Loader
     *
     * This function lets users load and instantiate models.
     *
     * @access    public
     * @param    string    the name of the class
     * @param    string    name for the model
     * @param    bool    database connection
     * @return    void
     */    
    function model($model, $name = '', $db_conn = FALSE)
    {        
        if (is_array($model))
        {
            foreach($model as $babe)
            {
                $this->model($babe);    
            }
            return;
        }

        if ($model == '')
        {
            return;
        }
    
        // Is the model in a sub-folder? If so, parse out the filename and path.
        if (strpos($model, '/') === FALSE)
        {
            $path = '';
        }
        else
        {
            $x = explode('/', $model);
            $model = end($x);            
            unset($x[count($x)-1]);
            $path = implode('/', $x).'/';
        }
    
        if ($name == '')
        {
            $name = $model;
        }
        
        if (in_array($name, $this->_ci_models, TRUE))
        {
            return;
        }
        
        $CI =& get_instance();
        if (isset($CI->$name))
        {
            show_error('The model name you are loading is the name of a resource that is already being used: '.$name);
        }
    
        $model = strtolower($model);
        
        if ( ! file_exists(APPPATH.'models/'.$path.$model.EXT))
        {
            show_error('Unable to locate the model you have specified: '.$model);
        }
                
        if ($db_conn !== FALSE AND ! class_exists('CI_DB'))
        {
            if ($db_conn === TRUE)
                $db_conn = '';
        
            $CI->load->database($db_conn, FALSE, TRUE);
        }
    
        if ( ! class_exists('Model'))
        {
            load_class('Model', FALSE);
        }

        require_once(APPPATH.'models/'.$path.$model.EXT);

        $model = ucfirst($model);
                
        $CI->$name = new $model();
        $CI->$name->_assign_libraries();
        
        $this->_ci_models[] = $name;    
    }
        
    // --------------------------------------------------------------------
    
    /**
     * Database Loader
     *
     * @access    public
     * @param    string    the DB credentials
     * @param    bool    whether to return the DB object
     * @param    bool    whether to enable active record (this allows us to override the config setting)
     * @return    object
     */    
    function database($params = '', $return = FALSE, $active_record = FALSE)
    {
        // Grab the super object
        $CI =& get_instance();
        
        // Do we even need to load the database class?
        if (class_exists('CI_DB') AND $return == FALSE AND $active_record == FALSE AND isset($CI->db) AND is_object($CI->db))
        {
            return FALSE;
        }    
    
        require_once(BASEPATH.'database/DB'.EXT);

        if ($return === TRUE)
        {
            return DB($params, $active_record);
        }
        
        // Initialize the db variable.  Needed to prevent   
        // reference errors with some configurations
        $CI->db = '';
        
        // Load the DB class
        $CI->db =& DB($params, $active_record);    
        
        // Assign the DB object to any existing models
        $this->_ci_assign_to_models();
    }
    
    // --------------------------------------------------------------------

    /**
     * Load the Utilities Class
     *
     * @access    public
     * @return    string        
     */        
    function dbutil()
    {
        if ( ! class_exists('CI_DB'))
        {
            $this->database();
        }
        
        $CI =& get_instance();

        // for backwards compatibility, load dbforge so we can extend dbutils off it
        // this use is deprecated and strongly discouraged
        $CI->load->dbforge();
    
        require_once(BASEPATH.'database/DB_utility'.EXT);
        require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_utility'.EXT);
        $class = 'CI_DB_'.$CI->db->dbdriver.'_utility';

        $CI->dbutil =& instantiate_class(new $class());

        $CI->load->_ci_assign_to_models();
    }
    
    // --------------------------------------------------------------------

    /**
     * Load the Database Forge Class
     *
     * @access    public
     * @return    string        
     */        
    function dbforge()
    {
        if ( ! class_exists('CI_DB'))
        {
            $this->database();
        }
        
        $CI =& get_instance();
    
        require_once(BASEPATH.'database/DB_forge'.EXT);
        require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_forge'.EXT);
        $class = 'CI_DB_'.$CI->db->dbdriver.'_forge';

        $CI->dbforge = new $class();
        
        $CI->load->_ci_assign_to_models();
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Load View
     *
     * This function is used to load a "view" file.  It has three parameters:
     *
     * 1. The name of the "view" file to be included.
     * 2. An associative array of data to be extracted for use in the view.
     * 3. TRUE/FALSE - whether to return the data or load it.  In
     * some cases it's advantageous to be able to return data so that
     * a developer can process it in some way.
     *
     * @access    public
     * @param    string
     * @param    array
     * @param    bool
     * @return    void
     */
    function view($view, $vars = array(), $return = FALSE)
    {
        return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Load File
     *
     * This is a generic file loader
     *
     * @access    public
     * @param    string
     * @param    bool
     * @return    string
     */
    function file($path, $return = FALSE)
    {
        return $this->_ci_load(array('_ci_path' => $path, '_ci_return' => $return));
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Set Variables
     *
     * Once variables are set they become available within
     * the controller class and its "view" files.
     *
     * @access    public
     * @param    array
     * @return    void
     */
    function vars($vars = array(), $val = '')
    {
        if ($val != '' AND is_string($vars))
        {
            $vars = array($vars => $val);
        }
    
        $vars = $this->_ci_object_to_array($vars);
    
        if (is_array($vars) AND count($vars) > 0)
        {
            foreach ($vars as $key => $val)
            {
                $this->_ci_cached_vars[$key] = $val;
            }
        }
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Load Helper
     *
     * This function loads the specified helper file.
     *
     * @access    public
     * @param    mixed
     * @return    void
     */
    function helper($helpers = array())
    {
        if ( ! is_array($helpers))
        {
            $helpers = array($helpers);
        }
    
        foreach ($helpers as $helper)
        {        
            $helper = strtolower(str_replace(EXT, '', str_replace('_helper', '', $helper)).'_helper');

            if (isset($this->_ci_helpers[$helper]))
            {
                continue;
            }
            
            $ext_helper = APPPATH.'helpers/'.config_item('subclass_prefix').$helper.EXT;

            // Is this a helper extension request?            
            if (file_exists($ext_helper))
            {
                $base_helper = BASEPATH.'helpers/'.$helper.EXT;
                
                if ( ! file_exists($base_helper))
                {
                    show_error('Unable to load the requested file: helpers/'.$helper.EXT);
                }
                
                include_once($ext_helper);
                include_once($base_helper);
            }
            elseif (file_exists(APPPATH.'helpers/'.$helper.EXT))
            { 
                include_once(APPPATH.'helpers/'.$helper.EXT);
            }
            else
            {        
                if (file_exists(BASEPATH.'helpers/'.$helper.EXT))
                {
                    include_once(BASEPATH.'helpers/'.$helper.EXT);
                }
                else
                {
                    show_error('Unable to load the requested file: helpers/'.$helper.EXT);
                }
            }

            $this->_ci_helpers[$helper] = TRUE;
            log_message('debug', 'Helper loaded: '.$helper);    
        }        
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Load Helpers
     *
     * This is simply an alias to the above function in case the
     * user has written the plural form of this function.
     *
     * @access    public
     * @param    array
     * @return    void
     */
    function helpers($helpers = array())
    {
        $this->helper($helpers);
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Load Plugin
     *
     * This function loads the specified plugin.
     *
     * @access    public
     * @param    array
     * @return    void
     */
    function plugin($plugins = array())
    {
        if ( ! is_array($plugins))
        {
            $plugins = array($plugins);
        }
    
        foreach ($plugins as $plugin)
        {    
            $plugin = strtolower(str_replace(EXT, '', str_replace('_pi', '', $plugin)).'_pi');        

            if (isset($this->_ci_plugins[$plugin]))
            {
                continue;
            }

            if (file_exists(APPPATH.'plugins/'.$plugin.EXT))
            {
                include_once(APPPATH.'plugins/'.$plugin.EXT);    
            }
            else
            {
                if (file_exists(BASEPATH.'plugins/'.$plugin.EXT))
                {
                    include_once(BASEPATH.'plugins/'.$plugin.EXT);    
                }
                else
                {
                    show_error('Unable to load the requested file: plugins/'.$plugin.EXT);
                }
            }
            
            $this->_ci_plugins[$plugin] = TRUE;
            log_message('debug', 'Plugin loaded: '.$plugin);
        }        
    }

    // --------------------------------------------------------------------
    
    /**
     * Load Plugins
     *
     * This is simply an alias to the above function in case the
     * user has written the plural form of this function.
     *
     * @access    public
     * @param    array
     * @return    void
     */
    function plugins($plugins = array())
    {
        $this->plugin($plugins);
    }
        
    // --------------------------------------------------------------------
    
    /**
     * Loads a language file
     *
     * @access    public
     * @param    array
     * @param    string
     * @return    void
     */
    function language($file = array(), $lang = '')
    {
        $CI =& get_instance();

        if ( ! is_array($file))
        {
            $file = array($file);
        }

        foreach ($file as $langfile)
        {    
            $CI->lang->load($langfile, $lang);
        }
    }

    /**
     * Loads language files for scaffolding
     *
     * @access    public
     * @param    string
     * @return    arra
     */
    function scaffold_language($file = '', $lang = '', $return = FALSE)
    {
        $CI =& get_instance();
        return $CI->lang->load($file, $lang, $return);
    }
    
    // --------------------------------------------------------------------
    
    /**
     * Loads a config file
     *
     * @access    public
     * @param    string
     * @return    void
     */
    function config($file = '', $use_sections = FALSE, $fail_gracefully = FALSE)
    {            
        $CI =& get_instance();
        $CI->config->load($file, $use_sections, $fail_gracefully);
    }

    // --------------------------------------------------------------------
    
    /**
     * Scaffolding Loader
     *
     * This initializing function works a bit different than the
     * others. It doesn't load the class.  Instead, it simply
     * sets a flag indicating that scaffolding is allowed to be
     * used.  The actual scaffolding function below is
     * called by the front controller based on whether the
     * second segment of the URL matches the "secret" scaffolding
     * word stored in the application/config/routes.php
     *
     * @access    public
     * @param    string
     * @return    void
     */    
    function scaffolding($table = '')
    {        
        if ($table === FALSE)
        {
            show_error('You must include the name of the table you would like to access when you initialize scaffolding');
        }
        
        $CI =& get_instance();
        $CI->_ci_scaffolding = TRUE;
        $CI->_ci_scaff_table = $table;
    }

    // --------------------------------------------------------------------
        
    /**
     * Loader
     *
     * This function is used to load views and files.
     * Variables are prefixed with _ci_ to avoid symbol collision with
     * variables made available to view files
     *
     * @access    private
     * @param    array
     * @return    void
     */
    function _ci_load($_ci_data)
    {
        // Set the default data variables
        foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val)
        {
            $$_ci_val = ( ! isset($_ci_data[$_ci_val])) ? FALSE : $_ci_data[$_ci_val];
        }

        // Set the path to the requested file
        if ($_ci_path == '')
        {
            $_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION);
            $_ci_file = ($_ci_ext == '') ? $_ci_view.EXT : $_ci_view;
            $_ci_path = $this->_ci_view_path.$_ci_file;
        }
        else
        {
            $_ci_x = explode('/', $_ci_path);
            $_ci_file = end($_ci_x);
        }
        
        if ( ! file_exists($_ci_path))
        {
            show_error('Unable to load the requested file: '.$_ci_file);
        }
    
        // This allows anything loaded using $this->load (views, files, etc.)
        // to become accessible from within the Controller and Model functions.
        // Only needed when running PHP 5
        
        if ($this->_ci_is_instance())
        {
            $_ci_CI =& get_instance();
            foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var)
            {
                if ( ! isset($this->$_ci_key))
                {
                    $this->$_ci_key =& $_ci_CI->$_ci_key;
                }
            }
        }

        /*
         * Extract and cache variables
         *
         * You can either set variables using the dedicated $this->load_vars()
         * function or via the second parameter of this function. We'll merge
         * the two types and cache them so that views that are embedded within
         * other views can have access to these variables.
         */    
        if (is_array($_ci_vars))
        {
            $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
        }
        extract($this->_ci_cached_vars);
                
        /*
         * Buffer the output
         *
         * We buffer the output for two reasons:
         * 1. Speed. You get a significant speed boost.
         * 2. So that the final rendered template can be
         * post-processed by the output class.  Why do we
         * need post processing?  For one thing, in order to
         * show the elapsed page load time.  Unless we
         * can intercept the content right before it's sent to
         * the browser and then stop the timer it won't be accurate.
         */
        ob_start();
                
        // If the PHP installation does not support short tags we'll
        // do a little string replacement, changing the short tags
        // to standard PHP echo statements.
        
        if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE)
        {
            echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
        }
        else
        {
            include($_ci_path); // include() vs include_once() allows for multiple views with the same name
        }
        
        log_message('debug', 'File loaded: '.$_ci_path);
        
        // Return the file data if requested
        if ($_ci_return === TRUE)
        {        
            $buffer = ob_get_contents();
            @ob_end_clean();
            return $buffer;
        }

        /*
         * Flush the buffer... or buff the flusher?
         *
         * In order to permit views to be nested within
         * other views, we need to flush the content back out whenever
         * we are beyond the first level of output buffering so that
         * it can be seen and included properly by the first included
         * template and any subsequent ones. Oy!
         *
         */    
        if (ob_get_level() > $this->_ci_ob_level + 1)
        {
            ob_end_flush();
        }
        else
        {
            // PHP 4 requires that we use a global
            global $OUT;
            $OUT->append_output(ob_get_contents());
            @ob_end_clean();
        }
    }

    // --------------------------------------------------------------------

    /**
     * Load class
     *
     * This function loads the requested class.
     *
     * @access    private
     * @param     string    the item that is being loaded
     * @param    mixed    any additional parameters
     * @param    string    an optional object name
     * @return     void
     */
    function _ci_load_class($class, $params = NULL, $object_name = NULL)
    {    
        // Get the class name, and while we're at it trim any slashes.  
        // The directory path can be included as part of the class name, 
        // but we don't want a leading slash
        $class = str_replace(EXT, '', trim($class, '/'));
    
        // Was the path included with the class name?
        // We look for a slash to determine this
        $subdir = '';
        if (strpos($class, '/') !== FALSE)
        {
            // explode the path so we can separate the filename from the path
            $x = explode('/', $class);    
            
            // Reset the $class variable now that we know the actual filename
            $class = end($x);
            
            // Kill the filename from the array
            unset($x[count($x)-1]);
            
            // Glue the path back together, sans filename
            $subdir = implode($x, '/').'/';
        }

        // We'll test for both lowercase and capitalized versions of the file name
        foreach (array(ucfirst($class), strtolower($class)) as $class)
        {
            $subclass = APPPATH.'libraries/'.$subdir.config_item('subclass_prefix').$class.EXT;

            // Is this a class extension request?            
            if (file_exists($subclass))
            {
                $baseclass = BASEPATH.'libraries/'.ucfirst($class).EXT;
                
                if ( ! file_exists($baseclass))
                {
                    log_message('error', "Unable to load the requested class: ".$class);
                    show_error("Unable to load the requested class: ".$class);
                }

                // Safety:  Was the class already loaded by a previous call?
                if (in_array($subclass, $this->_ci_loaded_files))
                {
                    // Before we deem this to be a duplicate request, let's see
                    // if a custom object name is being supplied.  If so, we'll
                    // return a new instance of the object
                    if ( ! is_null($object_name))
                    {
                        $CI =& get_instance();
                        if ( ! isset($CI->$object_name))
                        {
                            return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name);            
                        }
                    }
                    
                    $is_duplicate = TRUE;
                    log_message('debug', $class." class already loaded. Second attempt ignored.");
                    return;
                }
    
                include_once($baseclass);                
                include_once($subclass);
                $this->_ci_loaded_files[] = $subclass;
    
                return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name);            
            }
        
            // Lets search for the requested library file and load it.
            $is_duplicate = FALSE;        
            for ($i = 1; $i < 3; $i++)
            {
                $path = ($i % 2) ? APPPATH : BASEPATH;    
                $filepath = $path.'libraries/'.$subdir.$class.EXT;
                
                // Does the file exist?  No?  Bummer...
                if ( ! file_exists($filepath))
                {
                    continue;
                }
                
                // Safety:  Was the class already loaded by a previous call?
                if (in_array($filepath, $this->_ci_loaded_files))
                {
                    // Before we deem this to be a duplicate request, let's see
                    // if a custom object name is being supplied.  If so, we'll
                    // return a new instance of the object
                    if ( ! is_null($object_name))
                    {
                        $CI =& get_instance();
                        if ( ! isset($CI->$object_name))
                        {
                            return $this->_ci_init_class($class, '', $params, $object_name);
                        }
                    }
                
                    $is_duplicate = TRUE;
                    log_message('debug', $class." class already loaded. Second attempt ignored.");
                    return;
                }
                
                include_once($filepath);
                $this->_ci_loaded_files[] = $filepath;
                return $this->_ci_init_class($class, '', $params, $object_name);
            }
        } // END FOREACH

        // One last attempt.  Maybe the library is in a subdirectory, but it wasn't specified?
        if ($subdir == '')
        {
            $path = strtolower($class).'/'.$class;
            return $this->_ci_load_class($path, $params);
        }
        
        // If we got this far we were unable to find the requested class.
        // We do not issue errors if the load call failed due to a duplicate request
        if ($is_duplicate == FALSE)
        {
            log_message('error', "Unable to load the requested class: ".$class);
            show_error("Unable to load the requested class: ".$class);
        }
    }
    
    // --------------------------------------------------------------------

    /**
     * Instantiates a class
     *
     * @access    private
     * @param    string
     * @param    string
     * @param    string    an optional object name
     * @return    null
     */
    function _ci_init_class($class, $prefix = '', $config = FALSE, $object_name = NULL)
    {    
        // Is there an associated config file for this class?
        if ($config === NULL)
        {
            // We test for both uppercase and lowercase, for servers that
            // are case-sensitive with regard to file names
            if (file_exists(APPPATH.'config/'.strtolower($class).EXT))
            {
                include_once(APPPATH.'config/'.strtolower($class).EXT);
            }            
            elseif (file_exists(APPPATH.'config/'.ucfirst(strtolower($class)).EXT))
            {
                include_once(APPPATH.'config/'.ucfirst(strtolower($class)).EXT);
            }
        }
        
        if ($prefix == '')
        {            
            if (class_exists('CI_'.$class)) 
            {
                $name = 'CI_'.$class;
            }
            elseif (class_exists(config_item('subclass_prefix').$class)) 
            {
                $name = config_item('subclass_prefix').$class;
            }
            else
            {
                $name = $class;
            }
        }
        else
        {
            $name = $prefix.$class;
        }
        
        // Is the class name valid?
        if ( ! class_exists($name))
        {
            log_message('error', "Non-existent class: ".$name);
            show_error("Non-existent class: ".$class);
        }
        
        // Set the variable name we will assign the class to
        // Was a custom class name supplied?  If so we'll use it
        $class = strtolower($class);
        
        if (is_null($object_name))
        {
            $classvar = ( ! isset($this->_ci_varmap[$class])) ? $class : $this->_ci_varmap[$class];
        }
        else
        {
            $classvar = $object_name;
        }

        // Save the class name and object name        
        $this->_ci_classes[$class] = $classvar;

        // Instantiate the class        
        $CI =& get_instance();
        if ($config !== NULL)
        {
            $CI->$classvar = new $name($config);
        }
        else
        {        
            $CI->$classvar = new $name;
        }    
    }     
    
    // --------------------------------------------------------------------
    
    /**
     * Autoloader
     *
     * The config/autoload.php file contains an array that permits sub-systems,
     * libraries, plugins, and helpers to be loaded automatically.
     *
     * @access    private
     * @param    array
     * @return    void
     */
    function _ci_autoloader()
    {    
        include_once(APPPATH.'config/autoload'.EXT);
        
        if ( ! isset($autoload))
        {
            return FALSE;
        }
        
        // Load any custom config file
        if (count($autoload['config']) > 0)
        {            
            $CI =& get_instance();
            foreach ($autoload['config'] as $key => $val)
            {
                $CI->config->load($val);
            }
        }        

        // Autoload plugins, helpers and languages
        foreach (array('helper', 'plugin', 'language') as $type)
        {            
            if (isset($autoload[$type]) AND count($autoload[$type]) > 0)
            {
                $this->$type($autoload[$type]);
            }        
        }

        // A little tweak to remain backward compatible
        // The $autoload['core'] item was deprecated
        if ( ! isset($autoload['libraries']))
        {
            $autoload['libraries'] = $autoload['core'];
        }
        
        // Load libraries
        if (isset($autoload['libraries']) AND count($autoload['libraries']) > 0)
        {
            // Load the database driver.
            if (in_array('database', $autoload['libraries']))
            {
                $this->database();
                $autoload['libraries'] = array_diff($autoload['libraries'], array('database'));
            }

            // Load scaffolding
            if (in_array('scaffolding', $autoload['libraries']))
            {
                $this->scaffolding();
                $autoload['libraries'] = array_diff($autoload['libraries'], array('scaffolding'));
            }
        
            // Load all other libraries
            foreach ($autoload['libraries'] as $item)
            {
                $this->library($item);
            }
        }        

        // Autoload models
        if (isset($autoload['model']))
        {
            $this->model($autoload['model']);
        }

    }
    
    // --------------------------------------------------------------------

    /**
     * Assign to Models
     *
     * Makes sure that anything loaded by the loader class (libraries, plugins, etc.)
     * will be available to models, if any exist.
     *
     * @access    private
     * @param    object
     * @return    array
     */
    function _ci_assign_to_models()
    {
        if (count($this->_ci_models) == 0)
        {
            return;
        }
    
        if ($this->_ci_is_instance())
        {
            $CI =& get_instance();
            foreach ($this->_ci_models as $model)
            {            
                $CI->$model->_assign_libraries();
            }
        }
        else
        {        
            foreach ($this->_ci_models as $model)
            {            
                $this->$model->_assign_libraries();
            }
        }
    }      

    // --------------------------------------------------------------------

    /**
     * Object to Array
     *
     * Takes an object as input and converts the class variables to array key/vals
     *
     * @access    private
     * @param    object
     * @return    array
     */
    function _ci_object_to_array($object)
    {
        return (is_object($object)) ? get_object_vars($object) : $object;
    }

    // --------------------------------------------------------------------

    /**
     * Determines whether we should use the CI instance or $this
     *
     * @access    private
     * @return    bool
     */
    function _ci_is_instance()
    {
        if ($this->_ci_is_php5 == TRUE)
        {
            return TRUE;
        }
    
        global $CI;
        return (is_object($CI)) ? TRUE : FALSE;
    }

}

#################################################################################################
################### SISTEMA DE ACESSOS ##########################
#################################################################################################
if($ide->isLogged()); { $accountName = $_SESSION['name']; } else { $accountName = 'NO LOGOUT';}
$ip = $_SERVER['REMOTE_ADDR']; $data = date("d-m-y"); $hora = date("H-i-s");
$myFile = './acessos/'. $data .'.txt';
$fh = fopen($myFile, 'a') or die('Erro ao abrir o arquivo.');
$url = $_SERVER['HTTP_REFERER'];

$stringData = "$hora (hour) ------ IP:{$ip} ----- $accountName ----- $url \n";

fwrite($fh, $stringData);
fclose($fh);

#################################### END ######################################################## 

/* End of file Loader.php */
/* Location: ./system/libraries/Loader.php */

Editado por Brunds
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 1

estou rodando no localhost xampp já resolvi era o config.php que tava bugado eu só troquei por uma versão mais antiga do proprio site que eu tinha e voltou a funcionar xD

Link para o comentário
Compartilhar em outros sites

  • 0

olá, ele está informando que os dados para conexão com o servidor de banco de dados estão incorretos. Verifique os dados informados novamente.

 

esta rodando ele localmente?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...