2013-04-29 3 views
0

у меня есть этот код, который будет проверять ли (а) магазин находится в сети и (б) каталог /магазин доступен:как проверить, если каталог онлайн PHP

<?php 

// Set flag that this is a parent file 

define('_JEXEC', 1); 

define('JPATH_BASE', dirname(realpath(__FILE__)). '/../store'); 

define('DS', DIRECTORY_SEPARATOR); 

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 
jimport('joomla.application.module.helper'); 
jimport('joomla.application.component.helper'); 


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

$filename = '../store/'; 

if (!$mainframe->getCfg('offline') && file_exists($filename)) 
     { 
    echo "online"; 
    } 

else 
     { 
    echo "offline"; 
     } 
?> 

когда множество я магазин в автономном режиме в моей панели управления работает нормально, однако, когда каталог /store имеет имя, которое было изменено или удалено (становится недоступным), страница генерирует ошибку сервера , тогда как она должна echo «offline». как я могу изменить его, чтобы при изменении имен каталогов он менял его echoes «offline»

+0

Если страница вызывает ошибку сервера, я не думаю, что она может быть обработана в этом коде. Вам нужно выяснить, где эта ошибка возникает. – raidenace

+0

Почему вы все равно определяете $ filename? он определен в вашей постоянной JPATH_BASE, которая содержит абсолютный путь и должна быть предпочтительной. в конце концов, было бы интересно увидеть подробности о вашей ошибке сервера (проверьте журналы PHP, поскольку ошибки PHP не являются фактическими ошибками сервера). – jossif

ответ

0

Вы должны проверить каталог до на инициализацию приложения, так как приложение полагается на существование этого каталога.

<?php 

// Set flag that this is a parent file 
define('_JEXEC', 1); 

define('JPATH_BASE', dirname(realpath(__FILE__)). '/../store'); 
if (!file_exists(JPATH_BASE)) { 
    echo 'Offline due to missing installation'; 
    exit(0); 
} 

define('DS', DIRECTORY_SEPARATOR); 

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 
jimport('joomla.application.module.helper'); 
jimport('joomla.application.component.helper'); 

$app = JFactory::getApplication('site'); 
if ($app->getCfg('offline')) { 
    echo 'Offline due to configuration setting'; 
    $app->close(); 
} 
echo 'Online'; 
+0

Большое спасибо. Извинения за позднюю оценку. – user2308480

Смежные вопросы