5

AJAXクエリに使用するPHPスクリプトがいくつかありますが、Joomlaの認証システムの傘下でそれらを操作できるようにしたいと思います。次は安全ですか?不要な線はありますか?

joomla-auth.php(Joomlaのindex.phpと同じディレクトリにあります):

<?php

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

/* Create the Application */
$mainframe =& JFactory::getApplication('site');

/* Make sure we are logged in at all. */
if (JFactory::getUser()->id == 0)
    die("Access denied: login required.");

?>

test.php:

<?php

include 'joomla-auth.php';

echo 'Logged in as "' . JFactory::getUser()->username . '"';

/* We then proceed to access things only the user
   of that name has access to. */
?>
4

2 に答える 2

2

安全でないコードは見当たりませんが、標準の Joomla コンポーネントに対して AJAX/JSON 呼び出しを行うことをお勧めします。これを行う方法についての良い記事があります: http://blog.syncleon.com/2009/05/ajax-ify-your-joomla-website.html私の本http://www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf (168 ページまでスキップ)。

基本的に、AJAX 呼び出しの出力用のビューを作成し、view.html.php の代わりに view.xml.php (または view.json.php) ファイルを作成します。リクエスト URL の末尾に追加&format=xmlすると、view.html.php ではなく、view.xml.php からプルされます。

于 2010-03-15T13:39:18.450 に答える
0

確かに機能します。ユーザーのセッションデータを取得する必要があります

jimport( 'joomla.session.session' );
$session                =& JFactory::getSession();

セッションを印刷して、結果を確認します

于 2012-10-23T19:01:07.633 に答える