Jump to content

Recommended Posts

Posted

Sim. Vejamos: Tenho um site em joomla, e dentro desse site quero pôr uma aplicação em PHP. Até aqui tudo bem, já consegui!

Agora quero que ao fazer login no site joomla recolha os dados e os valide na minha BD da aplicação em PHP, para efetuar permissões.

Fiz-me entender ?

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted (edited)

O Joomla tem uma class JFactory que permite lidar com todos estes pormenores desde users, a módulos, etc...

Por exemplo, para receberes um utilizador que esteja ligado fazes:

$user = & JFactory::getUser();

depois é só acederes aos campos que precisas deste user, por exemplo:

// Se nao estiver com login efectuado
if($user->guest){
  echo 'Faz login...';
}else{
  echo 'o meu username é'. $user->name;
}

Isto dentro do código do teu módulo ou componente, etc...

EDIT: Mais pormenores aqui: http://docs.joomla.org/Accessing_the_current_user_object

Edited by KiNgPiTo
Posted

Obrigado.

Mais um passo que consegui. Com o código abaixo vou buscar o nome do utilizador que fez logon. Utilizo a component jumi para tal:

echo "Utilizador: ". $user->username;

Agora a minha questão é a seguinte: Nos meus ficheiros PHP como valido, com o código acima, quem pode ou não entrar na aplicação ?

p.s: Tudo isto porque é realmente chato estar sempre a fazer logins. Com isto, só preciso de fazer login uma vez, e automáticamente valida nas outras aplicações do site.

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted

Talvez o melhor então nesse caso seja guardares em sessão o utilizador que tem o Login efectuado. Podes juntar à sessão do Joomla:

Onde fazes login:

$session = JFactory::getSession();
$session->set('usrlog', $user); //guardas os dados do utilizador em sessão...

Nas tuas aplicações:

$session = JFactory::getSession();
if(isset(($user = $session->get('usrlog')))){
   //permites acesso e até ficas com os dados em $user
}else{
   // nao permites...
}

No teu logout:

$session = JFactory::getSession();
$session->clear('usrlog'); //limpa a var de sessão onde guardas o user...
Posted

Depende, de onde estiveres a fazer o que precisas...

O Login/Logout normalmente está num modulo que adicionas e tens na pasta modules onde estão os ficheiros dele (não posso ver agora onde concretamente, não tenho um joomla à mão).

Posted (edited)

Estás-te a referir ao "PathNome" ?

Eu coloco o caminho da aplicação e ele carrega, porém dá-me uns erros de includes. Abaixo:

Warning: include(../BD.php) [function.include]: failed to open stream: No such file or directory in H:\SGP\Login\index.php on line 135
Warning: include() [function.include]: Failed opening '../BD.php' for inclusion (include_path='.;\xampp\php\pear\') in H:\SGP\Login\index.php on line 135

Obrigado pela ajuda CRL.

No entanto, se conseguir fazer o include da aplicação não preciso de todo esse código.

Tens alguma solução acerca dos erros a cima ?

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.