web-dev-qa-db-fra.com

Comment utiliser un nom d'utilisateur et un mot de passe pour me connecter avec PHP?

J'ai une page personnalisée qui vérifie si User-> id est égal à zéro et, le cas échéant, un formulaire de connexion s'affiche. Je n'arrive pas à trouver de documentation sur la connexion à distance à Joomla. Des idées?

1
dawoodman71

Nous avons trouvé une solution qui fonctionne pour les versions 3.x et supérieures:

dans PHP fichier appelé via $ .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

En fichier 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