I created a new module to handle some external authentication. The code "works" in the sense that it properly logs the user in. However, it's displaying an error despite setting the login information. Here is the code for the module:
<?php
/**
* Implements hook_form_alter()
*/
function sl_login_form_alter(&$form, &$form_state, $form_id)
{
if (($form_id == 'user_login') || ($form_id == 'user_login_block'))
{
$form['#validate'][] = 'sl_login_user_validate';
}
}
/**
* Custom form validation function
*/
function sl_login_user_validate($form, &$form_state)
{
if (!sl_login_authenticate($form_state))
{
form_set_error('name', t('Unrecognized username.'));
}
}
/**
* Custom user authentication function
*/
function sl_login_authenticate($form_state)
{
$sl_username = $form_state["input"]["name"];
$sl_password = $form_state["input"]["pass"];
// Switch to SL Database
db_set_active('sl');
// Validate User Login
$slquery = "SELECT userid, username, password FROM users WHERE username = '$sl_username' AND password = '$sl_password'";
$slresult = db_query($slquery);
$found_records = 0;
foreach ($slresult as $row)
{
$found_records++;
$sl_userid = $row->userid;
$sl_username = $row->username;
}
db_set_active('default');
if ($found_records == 1)
{
user_external_login_register($sl_username,'SL');