Ограничить прямой доступ к сценарию на основе аутентификации Joomla - PullRequest
0 голосов
/ 12 августа 2010

Здравствуйте, я нашел сценарий Арон Роттвил:

<?php

$file = $_GET['file'];
$fileDir = '/path/to/files/';

if (file_exists($fileDir . $file))
{
    // Note: You should probably do some more checks 
    // on the filetype, size, etc.
    $contents = file_get_contents($fileDir . $file);

    // Note: You should probably implement some kind 
    // of check on filetype
    header('Content-type: image/jpeg');

    echo $contents;
}

?>

есть ли возможность добавить аутентификацию к этому, основываясь на сеансе пользователей joomla? Я имею в виду, когда пользователь зашел на мой сайт, он получил доступ к этому сценарию, но не может получить прямой доступ.

Извините за мой английский.

1 Ответ

0 голосов
/ 12 августа 2010

Во-первых, вы должны ограничить доступ к вашему скрипту извне платформы Joomla.Вы можете сделать это, вставив этот код в начале вашего кода:

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

Во-вторых, если вы просто хотите проверить, вошел ли пользователь, обращающийся к сценарию, вы можете использовать этот код:

$user =& JFactory::getUser();
if ($user->guest) {
  echo "<p>Please login to download.</p>";
}
else {
  //put the download code here
}

Если под ограничением прямого доступа вы имеете в виду запретить пользователям просто указывать URL-адрес вашего файла скрипта, то вам следует правильно его реализовать.В случае Joomla Porper способ будет создать компонент MVC.Вот отличный ресурс из официальной документации Joomla, с которого следует начать: Разработка компонента MVC .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...