2010-08-12 82 views
0

你好,我發現阿隆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