[OK] Error de sesión - Joomla! Forum - community, help and support


tras varias pruebas y demás descubierto que cuando uso jfactory para obtener datos de sesión en ocasiones no lo consigue.
es en ordenadores concretos ya que si entro con un usuario que falla en un pc en otro si carga correctamente.
si borro historial y demás, cierro y abro navegador de nuevo carga correctamente. la cuestión quiero evitar que esto ocurra ya que no me parece apropiada la solución que encontrado para dársela los usuarios de la página. el código que uso para obtener los datos de sesión ya está más que testado por lo que entiendo que debe ser otra cosa. agradecería cualquier tipo de ayuda.

code: select all

function getjoomuser() {
   error_reporting(1);
   define( '_jexec', 1 );
   define( 'ds', '/' );
   define( 'jpath_base', $_server[ 'document_root' ] . ds . 'joomla3.2.3' );
   
   if(is_file(jpath_base .ds.'configuration.php')) {
      require_once(jpath_base .ds.'configuration.php');
   } else {
      echo "could not locate configuration.php <br />";
   }
   if(is_file(jpath_base .ds.'includes/defines.php')) {
      require_once(jpath_base .ds.'includes'.ds.'defines.php');
   } else {
      echo "could not locate defines.php <br />";
   }
   if(is_file(jpath_base .ds.'includes/framework.php')) {
      require_once(jpath_base .ds.'includes'.ds.'framework.php');
   } else {
      echo "could not locate framework.php<br />";
   }
   if(is_file(jpath_base .ds.'libraries/joomla/factory.php')) {
      require_once(jpath_base .ds.'libraries/joomla/factory.php');
   } else {
      echo "could not locate factory.php<br />";
   }
   
   $mainframe =&jfactory::getapplication('site');
   $mainframe->initialise();
   
   global $user;
   $user =& jfactory::getuser();
   
   if ($userdata['username'] = $user->username)
   {
    //echo "carga nombre usuario ";
   }
   else
   {
    echo "no ha cargado usuario ";
   }
   $userdata['name'] = $user->name;
   if ($userdata['id'] = $user->id)
   {
    //echo "carga id de usuario ";
   }
   else
   {
    echo "no ha cargado id de usuario";
   }
   $userdata['email'] = $user->email;
   $userdata['groups'] = $user->groups;
   
   return $userdata;
}

code: select all

 include("funciones.php");
 include("import.php");
 
 $usuario=getjoomuser();
 $username=$usuario['username'];
 $name=$usuario['name'];
if ($usuario['id']== 0)

{
  echo "$name";
  print "no estas logueado en el sistema";

}   

else

{

hola zunzunm3

disculpa la tardanza en contestar. no soy el mejor para contestar temas de código, pero ver si algo puedo aportar.

en el código, lo único que puedo ver "raro" es esto

define( 'ds', '/' );

hasta donde yo sé, la forma correcta de usarlo es esta:

if(!defined('ds')){
define('ds',directory_separator);
}

aparte de eso poco más... y en cualquier caso, si es algo que cambia según el ordenador del que se conecta debe ser algo relacionado con las cookies o bien con algo que se ejecuta del lado del cliente (javascript).

un saludo.





Comments

Popular posts from this blog

Joomla 3.3 Installation Error message - Joomla! Forum - community, help and support

Multilanguage infinite redirect loop error. - Joomla! Forum - community, help and support

Thread: Wine can't find the cd