2010-08-12 2 views
0

Здравствуйте я нашел Aron Rotteveel сценарий:Ограничение прямого доступа к сценарию на основе аутентификации JOOMLA

<?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? Я имею в виду, когда пользователь вошел на мой сайт, он получил доступ к этому скрипту, но не смог получить доступ к нему.

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

ответ

0

Во-первых, вы должны ограничить доступ к своему скрипту из-за рамки 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, которая должна вас запустить: Developing a MVC Component.

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