web-dev-qa-db-ja.com

ユーザー名とパスワードを使用してPHPでログインするにはどうすればよいですか?

CUser-> idがゼロかどうかをチェックするカスタムページがあり、ゼロの場合はログインフォームをポップアップします。 Joomlaにリモートでログインする方法に関するドキュメントが見つからないようです。何か案は?

1
dawoodman71

3.x以降で機能するソリューションを見つけました:

PHP $ .ajaxから呼び出されるファイル:

define('_JEXEC', 1);
define('JPATH_BASE', '../../../');
defined('DS') or define('DS', DIRECTORY_SEPARATOR);
require_once ( JPATH_BASE . 'includes' . DS . 'defines.php' );
require_once ( JPATH_BASE . 'includes' . DS . 'framework.php' );
// connect to Joomla
$mainframe = & JFactory::getApplication('site');
jimport('joomla.plugin.helper');

$error = $mainframe->login([
    'username' => $login_username,
    'password' => $login_password,
]);
$user = JFactory::getUser();
echo $user->id

JavaScriptファイル:

$("#submit-button").click(login);

function login(){
    $.ajax({
        method: "POST",
        url: "/my/path/to/php",
        data: {
            login_username: $("input[name=login_username]").val(),
            login_password: $("input[name=login_password]").val()
        }
    }).done(function(data){
        if(data != "0"){
            // success
        } else {
            // failed
        }
    });
}
1
dawoodman71