//Simple login form with authentication and authorization for Transcat Mediator
session_name('TRANSCAT_MEDIATOR');
session_start();
if (!isset($_SESSION['initiated']))
{
session_regenerate_id();
$_SESSION['initiated'] = true;
}
// Only script with defined _VALID_MEDIATOR can inlude files
define ("_VALID_MEDIATOR", true);
define("PROJECT_STATE_EDIT", "0");
define("PROJECT_STATE_OPEN", "1");
define("PROJECT_STATE_CLOSED", "2");
define("PROJECT_STATE_ARCHIVE", "3");
define("EXPERT_STATE_EDIT", "0");
define("EXPERT_STATE_NOTSET", "1");
define("EXPERT_STATE_SET", "2");
define("EXPERT_STATE_ARCHIVE", "3");
//Start session, check authorization, set language file
file_exists("language.php")
? require("language.php")
: die('Missing file language.php. Please reinstall from original source');
/*
Check for message in session vars and if it
exists put it in statusbar var if it does not
empty statusbar var
*/
if(!empty($_SESSION['statusbar']))
{
$statusbar = $_SESSION['statusbar'];
unset( $_SESSION['statusbar']);
}
else
{
$statusbar = $LANGUAGE['login'];
}
/*
Now check if login and password vars exist in _POST vars
If they exist check if they are correct
If they are correct log in to Mediator
If they are not correct show login screen with proper message
*/
if( (isset($_POST['login']) && isset($_POST['password'])) )
{
//Database configuration check and connection
file_exists("db_connect.php") ? require("db_connect.php") : die( $LANGUAGE['mf_db_connect']);
if( get_magic_quotes_gpc() )
{
$expert = $_POST['login'];
$password = $_POST['password'];
}
else
{
$expert = addslashes($_POST['login']);
$password = addslashes($_POST['password']);
}
$query =
'
SELECT me.project_name, mp.state, me.expert_login, me.expert_name
FROM '.$DB_TABLES['mediator_experts'].' me, '.$DB_TABLES['mediator_projects'].' mp
WHERE
me.expert_login = \''.$expert.'\'
AND
me.password = \''.$password.'\'
AND
mp.project_name = me.project_name
';
$result = mysql_query ($query) or die ($LANGUAGE['db_query_failed']);
/*
If user has given correct login and password log in
If no show login screen
*/
while($check_result = mysql_fetch_row($result))
{
if($check_result)
{
$_SESSION['currentprojectname'] = $check_result[0];
if($check_result[1] == PROJECT_STATE_OPEN || $check_result[1] == PROJECT_STATE_CLOSED)
{
$_SESSION['loged'] = true;
$_SESSION['expert_login'] = $check_result[2];
$_SESSION['expert_name'] = $check_result[3];
// Check what languages are
$query = 'SELECT language, language_file FROM '.$DB_TABLES['mediator_languages'];
$result = mysql_query ($query) or die ($LANGUAGE['db_query_failed']);
$check_result = mysql_fetch_row($result);
unset($_SESSION['languages_list']);
unset($_SESSION['languages_files_list']);
// Add languages to list
while ($check_result)
{
$_SESSION['languages_list'][] = $check_result[0];
$_SESSION['languages_files_list'][] = $check_result[1];
$check_result = mysql_fetch_row($result);
}
//forwarding user to main window
header("Location: expert.php");
//make sure that the rest of the script won't be executed
exit;
}
else
{
$statusbar = $LANGUAGE['cant_login_to_project_state'];
}
}
else
{
$statusbar = $LANGUAGE['wrong_password_or_username'];
}
}
}
$login_screen =
'