我運行的Joomla 3.1和我有我創建了中可導出CSV Joomla的管理員後臺登錄時,你可以訪問自定義組件的選項。它鏈接到一個導出爲CSV(帶有MIME類型)的PHP文件,並且數據是個人敏感的。因爲這個鏈接文件是它自己的獨立的實體,是有辦法包括,檢查用戶是否登錄爲管理員和拒絕訪問如果沒有這個PHP文件的開頭部分的PHP代碼?拒絕訪問的Joomla從單獨的文件,如果沒有登錄到的Joomla
回答
事情是這樣的:
if($admin){
//allow access
} else {
//deny access
}
$admin
是一個佔位符,並需要更換
你爲什麼不包括此PHP文件在Joomla框架,讓它像一個普通視圖中工作?
如果你想有一個獨立的腳本檢查用戶是否登錄,您必須手動實例化您的文件中的Joomla框架,並做檢查那裏。這也可能是更多的工作,而不是包括腳本到的Joomla :-)
因爲正在訪問的PHP文件有一個頭確定該文件成爲一個CSV MIME類型所以基本上整個原因文件是它的一個CSV文件下載。也許我仍然可以把它關掉? – thecommonthread
從Joomla內部創建一個CSV文件是沒有問題的。與創建Feed視圖沒有多大區別。您可以使用文檔類型「原始」。在URL和view.raw.php中使用&format = raw代替view.html.php,它將使用常規視圖。 – Bakual
拳獲取登錄的用戶對象。 獲取他的組ID。 Joomla 2.5+中超級管理員的組ID爲8.因此,檢查用戶是否具有組ID = 8,然後允許訪問該頁面。
$checkuser = JFactory::getUser();
$userGroups = $checkuser->get('groups');
if (in_array(8, $userGroups)){
//allow access
}
這就是我如何解決這個問題。它幾乎來自Joomla的/index.php! 3.1安裝時不需要所有你不需要的東西。您必須查找您想要訪問該文件的組ID。這個腳本只能用在你的Joomla的根目錄下!按原樣安裝。
<?php
/**
* @package JoomlaSessionCustomScript.php
*
* @copyright Copyright (C) 2013 Cecilomar Design, Inc. All rights reserved.
* @license GNU General Public License version 3 or later; see LICENSE.txt
*/
if (version_compare(PHP_VERSION, '5.3.1', '<'))
{
die('Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!');
}
/**
* Constant that is checked in included files to prevent direct access.
* define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
if (file_exists(__DIR__ . '/defines.php'))
{
include_once __DIR__ . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';
// Instantiate the application.
JFactory::getApplication('site');
$jusersession = $_SESSION['__default']['user'];
///////////////////////////////////////////////////////////////////////////////////////////////////
// GroupID ////////////////////////////////////////////////////////////////////////////////////////
$groupid = 2; /////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
if($jusersession->guest == true){
echo "Hello guest. You need to login to see the content in this area.";
} else{
if($jusersession->groups[$groupid] == $groupid){
///////////////////////////////////////////////////////////////////////////////////////////////////
// INCLUDE YOUR CODE OR SCRIPT HERE! //////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
echo "It works!</br><pre>";
// Explore the session variables.
print_r($jusersession);
echo "</pre>";
///////////////////////////////////////////////////////////////////////////////////////////////////
}
}
?>
- 1. 登錄到Joomla沒有訪問Joomla安裝在PHP/MySQL?
- 2. 拒絕訪問PHP的登錄
- 3. OpenERP的登錄訪問被拒絕
- 4. 從wordpress登錄joomla
- 5. Joomla組件問題 - 從index.php文件訪問Joomla框架
- 6. 如果沒有$ _POST存在,htaccess拒絕訪問文件?
- 7. 如何訪問Joomla上的文件?
- 8. web.config文件行拒絕訪問谷歌的OAuth登錄
- 9. Joomla Server無法讀取htaccess文件,拒絕訪問是安全的
- 10. 拒絕從文件中的ips訪問
- 11. 的.htaccess拒絕訪問到文件夾
- 12. 檢查當前訪問者是否登錄到Joomla的後端
- 13. 的Joomla登錄簡單的腳本
- 14. Joomla管理登錄問題
- 15. phpbb3和joomla登錄問題
- 16. 單點登錄Joomla和Flash
- 17. Joomla登錄用戶菜單
- 18. Joomla文件限制訪問
- 19. Joomla 1.5登錄
- 20. MVC 5 Facebook登錄訪問被拒絕
- 21. 拒絕訪問特定文件,但允許在登錄後訪問該文件
- 22. 拒絕所有SVN目錄的訪問
- 23. IIS拒絕訪問虛擬目錄中的簡單HTML文件
- 24. Joomla和Php之間的單一登錄
- 25. 自定義Joomla上的登錄菜單
- 26. 拒絕訪問目錄/文件夾
- 27. 從Joomla 1.5到Joomla 2.5的組件
- 28. 錯誤,當登錄到Joomla
- 29. 的Joomla 1.5.18無法登錄
- 30. pycurl登錄的Joomla網站
對,我實際上是在尋找更高級的代碼來抓取Joomla當前的登錄數據來檢查管理員是否登錄。我找不到任何能爲我工作的東西。我能得到的最接近的是從這裏:http://docs.joomla.org/JFactory/getUser – thecommonthread