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
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 "<SCRIPT LANGUAGE='JAVASCRIPT'>";
   echo "alert('Acesso negado, a senha não confere');";
   echo "window.location.replace('index.php');";
   echo "";

}

// USUÁRIO INFORMADO NÃO EXISTE:
} else {

// Exibindo uma mensagem.
echo "Este usuário não está cadastrado";

// Ou alertando o usuário:
   echo "<script LANGUAGE='JAVASCRIPT'>";
   echo "alert('Este usuário não esta cadastrado');";
   echo "window.location.replace('index.php');";
   echo "</script>";
}

// Fechando a conexão
mysql_close($db);
?>

Leave a Reply

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