Jump to content

use joomla accounting in another php script


tntcute

Recommended Posts

 0 down vote favorite
    

I have a Joomla site and have a PHP script in it. There is a button that redirects people to PHP script. I want to use my Joomla site user groups as access levels. those who are not logged in should be prevented from accessing the index.php of the PHP script and receive a message such as "you must login first!" and those that are logged in, can access to the index.php of the PHP script.

The thing that I did was that include the Joomla framework at the top of index.php of PHP script and put the function: JFactory::getUser();. After that I put the whole index.php in an if-else condition. The condition of the if is that the return value of getUser() not equals "guest".

The else part is working properly and shows the message "you must login first" but the if part doesn't work and just shows a blank page and I receive #

error 500 "internal server error"

It means that my code recognises those that are logged in and those that aren't. Also, when I delete my personal code it shows the index.php properly to everyone.

help me pls
this is the joomla site:  v-uni.ir/bt-travel
and this is the php script:v-uni.ir/amir/extension/apphp
this is the code:

    

this is the code:

    <?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";
    }
    
    
    
    ?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.