what this ?
how can i solve this problem?

Fatal error: Call to a member function isAdmin() on a non-object in /home/mysite/public_html/plugins/system/remember.php on line 48

THIS IS ONLINE 48 CODE

	if ($mainframe->isAdmin()) {

help me to make my website live again...
THIS IS DETAIL CODE

<?php
/**
* @version		$Id: remember.php 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

/**
 * Joomla! System Remember Me Plugin
 *
 * @package		Joomla
 * @subpackage	System
 */
class plgSystemRemember extends JPlugin
{
	/**
	 * Constructor
	 *
	 * For php4 compatability we must not use the __constructor as a constructor for plugins
	 * because func_get_args ( void ) returns a copy of all passed arguments NOT references.
	 * This causes problems with cross-referencing necessary for the observer design pattern.
	 *
	 * @access	protected
	 * @param	object	$subject The object to observe
	 * @param 	array   $config  An array that holds the plugin configuration
	 * @since	1.0
	 */
	function plgSystemRemember(& $subject, $config) {
		parent::__construct($subject, $config);
	}

function onAfterInitialise()
{
	global $mainframe;

// No remember me for admin THIS IS ONLINE 48 IN REMEMBER.PHP
	if ($mainframe->isAdmin()) {
		return;
	}

	$user = &JFactory::getUser();
	if (!$user->get('gid'))
	{
		jimport('joomla.utilities.utility');
		$hash = JUtility::getHash('JLOGIN_REMEMBER');

		if ($str = JRequest::getString($hash, '', 'cookie', JREQUEST_ALLOWRAW | JREQUEST_NOTRIM))
		{
			jimport('joomla.utilities.simplecrypt');

			//Create the encryption key, apply extra hardening using the user agent string
			$key = JUtility::getHash(@$_SERVER['HTTP_USER_AGENT']);

			$crypt	= new JSimpleCrypt($key);
			$str	= $crypt->decrypt($str);

			$options = array();
			$options['silent'] = true;
			if (!$mainframe->login(@unserialize($str), $options)) {
				// Clear the remember me cookie
				setcookie( JUtility::getHash('JLOGIN_REMEMBER'), false, time() - 86400, '/' );
			}
		}
	}
}

thanks if you can solve this problem...?

    The error is because there is no appropriate object named $mainframe in the global scope when that method is executed. That's one of the major problems with using global within a function/method like that: the function is now closely coupled to and highly dependent upon the application code having already defined and properly populated that variable. I'm not sure what the fix is without knowing where that $mainframe object should have been defined, though I would prefer to rewrite the function so that the object is passed to it as a function parameter (which would also allow for the use of type-hinting to ensure the correct type of object is passed to it).

      Write a Reply...