Howto: Como utilizar a base de usuários do JOOMLA 1.5.x para se logar externamente

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]

This entry was posted in HowTo - Como fazer, PHP. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *