-
/**
-
* Login function
-
*/
-
function login_dbext(&$username, &$password)
-
{
-
global $db;</code>
-
-
// do not allow empty password
-
if (!$password)
-
{
-
-
’status’ => LOGIN_ERROR_PASSWORD,
-
‘error_msg’ => ‘NO_PASSWORD_SUPPLIED’,
-
‘user_row’ =>
; array(‘user_id’ =>
; ANONYMOUS
),
-
);
-
}
-
-
if (!$username)
-
{
-
-
’status’ => LOGIN_ERROR_USERNAME,
-
‘error_msg’ => ‘LOGIN_ERROR_USERNAME’,
-
‘user_row’ =>
; array(‘user_id’ =>
; ANONYMOUS
),
-
);
-
}
-
-
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
// Note: on my systems, I include these following lines from an external file that is not web-accessible
-
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
$db_host = "localhost"; // Here goes the MySQL server address, hostname or IP
-
$db_user = "username"; // Here goes the MySQL user allowed to read the table below (GRANT SELECT ON ….)
-
$db_password = "passwd"; // Here should go the password associated with the above user
-
$db_database = "dbName"; // Here goes the Database containing the table below
-
$db_table = "tblUsers"; // Here will goes the table list users allowed to login into PHPBB
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
$col_username = "username";
-
$col_password = "password";
-
$hashMethod = "sha1"; // Can be one of: md5, sha1, plain
-
// In case you choose to use a non-standard hashing function, be
-
// sure to change below where the $hashedPassword variable is created
-
-
$objMySqli = new mysqli($db_host, $db_user, $db_password, $db_database);
-
-
/* check connection */
-
-
{
-
-
’status’ => LOGIN_ERROR_EXTERNAL_AUTH ,
-
‘error_msg’ => ‘LOGIN_ERROR_EXTERNAL_AUTH ‘,
-
‘user_row’ =>
; array(‘user_id’ =>
; ANONYMOUS
),
-
);
-
}
-
-
// Check the User/Password
-
if($hashMethod == ’sha1′)
-
{
-
$hashedPassword = sha1($password);
-
} elseif($hashMethod == ‘md5′) {
-
$hashedPassword = md5($password);
-
} else {
-
$hashedPassword = $password;
-
}
-
$sql =
-
"SELECT 11 as ID
-
FROM " . $db_table . "
-
WHERE
-
-
-
";
-
-
if ( $result = $objMySqli->query($sql) )
-
{
-
if ( $result->num_rows <= 0 )
-
{
-
-
’status’ => LOGIN_ERROR_USERNAME,
-
‘error_msg’ => ‘LOGIN_ERROR_USERNAME’,
-
‘user_row’ =>
; array(‘user_id’ =>
; ANONYMOUS
),
-
);
-
}
-
-
$sql = ‘SELECT user_id, username, user_password, user_passchg, user_email, user_type
-
FROM ‘ . USERS_TABLE . "
-
WHERE username = ‘" . $db->sql_escape($username) . "’";
-
$result = $db->sql_query($sql);
-
$row = $db->sql_fetchrow($result);
-
$db->sql_freeresult($result);
-
-
if ($row)
-
{
-
// User inactive…
-
if ($row[‘user_type’] == USER_INACTIVE || $row[‘user_type’] == USER_IGNORE)
-
{
-
-
’status’ => LOGIN_ERROR_ACTIVE,
-
‘error_msg’ => ‘ACTIVE_ERROR’,
-
‘user_row’ => $row,
-
);
-
}
-
-
// Successful login…
-
-
’status’ => LOGIN_SUCCESS,
-
‘error_msg’ => false,
-
‘user_row’ => $row,
-
);
-
}
-
-
// this is the user’s first login so create an empty profile
-
-
’status’ => LOGIN_SUCCESS_CREATE_PROFILE,
-
‘error_msg’ => false,
-
‘user_row’ =>
; user_row_dbext
($username, sha1($password)),
-
);
-
} else {
-
// TODO: Handle this situation
-
}
-
-
// Not logged in using the external DB
-
-
’status’ => LOGIN_ERROR_EXTERNAL_AUTH,
-
‘error_msg’ => ‘LOGIN_ERROR_EXTERNAL_AUTH’,
-
‘user_row’ =>
; array(‘user_id’ =>
; ANONYMOUS
),
-
);
-
}