Joomla サイトがあり、そこに PHP スクリプトがあります。ユーザーを PHP スクリプトにリダイレクトするボタンがあります。Joomla サイトのユーザー グループをアクセス レベルとして使用したいと考えています。ログインしていないユーザーは PHP スクリプトのindex.phpにアクセスできず、 「最初にログインする必要があります!」などのメッセージが表示されます。ログインしている場合は、PHP スクリプトのindex.phpにアクセスできます。
私がやったことは、Joomla フレームワークを PHP スクリプトのindex.phpJFactory::getUser();
の先頭に含めて、関数を配置することでした: . その後、index.php全体をif-else
条件に入れます。の条件は、 notif
の戻り値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";
}
?>