Howto: Como utilizar a base de usuários do JOOMLA 1.5.x para se logar externamente com PHP.
Sério, você ainda pode precisar disso.
Imagine a seguinte situação:
Você tem um portal Joomla funcionando normalmente e necessita criar um sistema externo que necessita de autenticação, então você se lembra que no Joomla existe uma base de usuários completa e o que precisa fazer é somente utilizar essa base para se logar, maravilha, então confira no script abaixo como fazer isso, não requer prática nem habilidade:
[php]
< ?php
session_start();
// Fazer conexão com o banco de dados
$db = mysql_connect("localhost", "usuarioBD", "senhaBD");
mysql_select_db("baseDeDados", $db);
// Pegar nome de usuário e senha do formulário
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
// Obter senha cifrada do usuário
$sql = "SELECT name, password FROM jos_users WHERE username='$usuario'";
$resultado = mysql_query($sql);
// Extrair os dados do resultado da query
$pega = mysql_fetch_array($resultado);
$senhaCripto = $pega['password'];
// Separar a senha do sal
if($senhaCripto)
{
$partes = explode( ':', $senhaCripto );
$cripto = $partes[0];
$sal = $partes[1];
// Criar hash com a senha fornecida com o sal (se houver)
$novoHash = ($sal) ? md5($senha.$sal) : md5($senha);
// USUÁRIO E SENHA VÁLIDOS:
if( $novoHash == $cripto ) {
// Jogando na sessão o nome do usuário, para poder utilizar posteriormente
$_SESSION['nome'] = $pega["name"];
// Pode-se simplesmente exibir uma mensagem, ou redirecionar para uma página restrita.
echo "Acesso autorizado";
// redirecionando para a pagina restrita.
header("location:pagina_restrita.php");
// USUÁRIO EXISTE, MAS A SENHA NÃO BATE:
} else {
// Pode-se exibir uma mensagem.
echo "Acesso negado. A senha não confere!";
// Ou é dar um alert pro usuário:
echo "“;
}
// Fechando a conexão
mysql_close($db);
?>
[/php]