在另一个PHP脚本中使用joomla accounting

时间:2013-08-15 05:55:11

标签: php joomla

我有一个Joomla网站,里面有一个PHP脚本。有一个按钮可以将人重定向到PHP脚本。我想将我的Joomla站点用户组用作访问级别。那些登录的人应该被阻止访问PHP脚本的 index.php 并收到一条消息,例如“你必须先登录!” / em>以及 登录的用户,可以访问PHP脚本的 index.php

我所做的是在PHP脚本的 index.php 的顶部包含Joomla框架并放置函数:JFactory::getUser();。之后,我将整个 index.php 置于if-else条件下。 if的条件是getUser()的返回值不等于“guest”。

else部分工作正常并显示消息“您必须先登录”,但if部分不起作用,只显示空白页面收到#

error 500 "internal server error"

这意味着我的代码会识别已登录的内容以及未登录的代码。 此外,当我删除我的个人代码时,它会向所有人正确显示 index.php

帮帮我吧


这是代码:

<?php



define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define('JPATH_BASE', dirname(__FILE__)."/../../../bt-travel/");

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );



$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

$user =& JFactory::getUser();

if(!$user->guest){



// *** check if database connection parameters file exists
if(!file_exists('include/base.inc.php')){
    header('location: install.php');
    exit;
}

## uncomment, if your want to prevent 'Web Page exired' message when use $submission_method = 'post';
// session_cache_limiter('private, must-revalidate');    
// *** set flag that this is a parent file

define('APPHP_EXEC', 'access allowed');


require_once('include/base.inc.php');
require_once('include/connection.php');




// *** call handler if exists
// -----------------------------------------------------------------------------
if((Application::Get('page') != '') && file_exists('page/handlers/handler_'.Application::Get('page').'.php')){
    include_once('page/handlers/handler_'.Application::Get('page').'.php');
}else if((Application::Get('customer') != '') && file_exists('customer/handlers/handler_'.Application::Get('customer').'.php')){
    if(Modules::IsModuleInstalled('customers')){    
        include_once('customer/handlers/handler_'.Application::Get('customer').'.php');
    }
}else if((Application::Get('admin') != '') && file_exists('admin/handlers/handler_'.Application::Get('admin').'.php')){
    include_once('admin/handlers/handler_'.Application::Get('admin').'.php');
}else if((Application::Get('admin') == 'export') && file_exists('admin/downloads/export.php')){
    include_once('admin/downloads/export.php');
}

// *** get site content
// -----------------------------------------------------------------------------
if(!preg_match('/booking_notify_/i', Application::Get('page'))){    
    $cachefile = '';
    if($objSettings->GetParameter('caching_allowed') && !$objLogin->IsLoggedIn()){
        $c_page        = Application::Get('page');
        $c_page_id     = Application::Get('page_id');
        $c_system_page = Application::Get('system_page');
        $c_album_code  = Application::Get('album_code');
        $c_news_id     = Application::Get('news_id');
        $c_customer    = Application::Get('customer');
        $c_admin       = Application::Get('admin');

        if(($c_page == '' && $c_customer == '' && $c_admin == '') || 
           ($c_page == 'pages' && $c_page_id != '') || 
           ($c_page == 'news' && $c_news_id != '') ||
           ($c_page == 'gallery' && $c_album_code != '')
           )
        {   
            $cachefile = md5($c_page.'-'.
                             $c_page_id.'-'.
                             $c_system_page.'-'.
                             $c_album_code.'-'.
                             $c_news_id.'-'.
                             Application::Get('lang').'-'.
                             Application::Get('currency_code')).'.cch'; 
            if($c_page == 'news' && $c_news_id != ''){
                if(!News::CacheAllowed($c_news_id)) $cachefile = '';
            }else{
                $objTempPage = new Pages((($c_system_page != '') ? $c_system_page : $c_page_id));
                if(!$objTempPage->CacheAllowed()) $cachefile = '';          
            }           
            if(start_caching($cachefile)) exit;
        }
    }
    require_once('templates/'.Application::Get('template').'/default.php');
    if($objSettings->GetParameter('caching_allowed') && !$objLogin->IsLoggedIn()) finish_caching($cachefile);
}

Application::DrawPreview();

echo "\n".'<!-- This page was generated by ApPHP Hotel Site v'.CURRENT_VERSION.' -->';

}else{
echo "you must login first";
}



?>

1 个答案:

答案 0 :(得分:0)

<?php



define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define('JPATH_BASE', dirname(__FILE__)."/../../../bt-travel/");

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );



$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

$user =& JFactory::getUser();

if(!$user->guest){



// *** check if database connection parameters file exists
if(!file_exists('include/base.inc.php')){
    header('location: install.php');
    exit;
}

## uncomment, if your want to prevent 'Web Page exired' message when use $submission_method = 'post';
// session_cache_limiter('private, must-revalidate');    
// *** set flag that this is a parent file

define('APPHP_EXEC', 'access allowed');


require_once('include/base.inc.php');
require_once('include/connection.php');




// *** call handler if exists
// -----------------------------------------------------------------------------
if((Application::Get('page') != '') && file_exists('page/handlers/handler_'.Application::Get('page').'.php')){
    include_once('page/handlers/handler_'.Application::Get('page').'.php');
}else if((Application::Get('customer') != '') && file_exists('customer/handlers/handler_'.Application::Get('customer').'.php')){
    if(Modules::IsModuleInstalled('customers')){    
        include_once('customer/handlers/handler_'.Application::Get('customer').'.php');
    }
}else if((Application::Get('admin') != '') && file_exists('admin/handlers/handler_'.Application::Get('admin').'.php')){
    include_once('admin/handlers/handler_'.Application::Get('admin').'.php');
}else if((Application::Get('admin') == 'export') && file_exists('admin/downloads/export.php')){
    include_once('admin/downloads/export.php');
}

// *** get site content
// -----------------------------------------------------------------------------
if(!preg_match('/booking_notify_/i', Application::Get('page'))){    
    $cachefile = '';
    if($objSettings->GetParameter('caching_allowed') && !$objLogin->IsLoggedIn()){
        $c_page        = Application::Get('page');
        $c_page_id     = Application::Get('page_id');
        $c_system_page = Application::Get('system_page');
        $c_album_code  = Application::Get('album_code');
        $c_news_id     = Application::Get('news_id');
        $c_customer    = Application::Get('customer');
        $c_admin       = Application::Get('admin');

        if(($c_page == '' && $c_customer == '' && $c_admin == '') || 
           ($c_page == 'pages' && $c_page_id != '') || 
           ($c_page == 'news' && $c_news_id != '') ||
           ($c_page == 'gallery' && $c_album_code != '')
           )
        {   
            $cachefile = md5($c_page.'-'.
                             $c_page_id.'-'.
                             $c_system_page.'-'.
                             $c_album_code.'-'.
                             $c_news_id.'-'.
                             Application::Get('lang').'-'.
                             Application::Get('currency_code')).'.cch'; 
            if($c_page == 'news' && $c_news_id != ''){
                if(!News::CacheAllowed($c_news_id)) $cachefile = '';
            }else{
                $objTempPage = new Pages((($c_system_page != '') ? $c_system_page : $c_page_id));
                if(!$objTempPage->CacheAllowed()) $cachefile = '';          
            }           
            if(start_caching($cachefile)) exit;
        }
    }
    require_once('templates/'.Application::Get('template').'/default.php');
    if($objSettings->GetParameter('caching_allowed') && !$objLogin->IsLoggedIn()) finish_caching($cachefile);
}

Application::DrawPreview();

echo "\n".'<!-- This page was generated by ApPHP Hotel Site v'.CURRENT_VERSION.' -->';

}else{
echo "you must login first";
}



?>