Récupérer des infos user avec getUser -Joomla

Fermé
Florent - 13 févr. 2012 à 18:37
 Jpeg - 2 mars 2012 à 08:33
Bonjour,

Pour récupérer les informations des utilisateurs connectés sur ma homepage je fais appel à la fonction JFactory::getUser() du code ci-desous, mais ça ne fonctionne pas et je n'ai plus d'idée.

J'ai fais un test en changeant la conditon avec if ($user->guest), et là le code s'exécute mais le contenu des variables est vide.

Si ma compréhension est la bonne, c'est le signe que la variable "guest" existe bien (ou plutôt qu'elle n'est pas vide). Cette vérification est censé vérifier que l'utilisateur est bien loggé (guest existe => "pas loggé", guest n'existe pas => "loggé".

Voici le contenu du var_dump($user); :

object(JUser)#17 (23) { ["isRoot":protected]=> NULL ["id"]=> int(0) ["name"]=> NULL ["username"]=> NULL ["email"]=> NULL ["password"]=> NULL ["password_clear"]=> string(0) "" ["usertype"]=> NULL ["block"]=> NULL ["sendEmail"]=> int(0) ["registerDate"]=> NULL ["lastvisitDate"]=> NULL ["activation"]=> NULL ["params"]=> NULL ["groups"]=> array(0) { } ["guest"]=> int(1) ["_params":protected]=> object(JRegistry)#18 (1) { ["data":protected]=> object(stdClass)#19 (0) { } } ["_authGroups":protected]=> NULL ["_authLevels":protected]=> NULL ["_authActions":protected]=> NULL ["_errorMsg":protected]=> NULL ["_errors":protected]=> array(0) { } ["aid"]=> int(0) } 


Comme je suis bien loggé avec un compte utilisateur, comment se fait-il que guest existe ? des idées ?

(j'utilise la version Joomla! 2.5)

<?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' );

$user =& JFactory::getUser();

if (!$user->guest) {
  echo 'You are logged in as:<br />';
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
}
?>

2 réponses

Finalement, je suis bien connecté depuis mon module d'authentification mais l'objet getUser est complétement vide. Ce petit bout de code me dit que je ne suis pas loggé (je précise que mon php se trouve dans un iframe).

Des idées ?

if (JFactory::getUser()->id == 0)
    die("Access denied: login required.");
0
Salut !
Essaye comme ça :
(PS : j'utilise un override du controller user (frontend) pour la connexion depuis un webservice utilisant un groupe de population donc ne pas faire attention au "typeofuser" )

$mainframe =& JFactory::getApplication('site'); 
$mainframe->initialise(); 

$credentials = array( 'username' => $userincomming, 'password' => $userincommingpass, 'typeofuser' => $userincommingtype ); 
$options = array(); 

$error = $mainframe->login($credentials, $options); 

if(!JError::isError($error)) 
{ 
  //echo "je me connecte"; 
 $user =& JFactory::getUser($userincomming); 
} 


Bonne journée
en espérant que ça aide !
0