У меня есть форма с только именем пользователя, которая позволит получить доступ к двум страницам в зависимости от уровня полномочий пользователя в базе данных MS SQL.
Если их уровень полномочий равен 10, то они войдут на «обычную» страницу, однако, что угодно, и они войдут на страницу администратора с большей функциональностью. Это все работает нормально, однако позволяет любому, кто вводит имя пользователя, войти в систему.
Я пытаюсь предотвратить вход в систему любого имени пользователя, которого нет в базе данных. Это то, что я до сих пор ...
$conn = odbc_connect(database connection stuff here);
$login = $_POST['login'];
$sqlquery = "SELECT u.authorityLevel, u.employeeNo, e.knownAs FROM common.dbo.users as u JOIN
common.dbo.employees AS e on e.employeeNo = u.employeeNo WHERE u.employeeNo = '".$login."'";
$result = odbc_exec($conn, $sqlquery);
$user = odbc_fetch_array($result);
$userExists = odbc_num_rows($sqlquery);
if((isset($_SESSION['login']['logged_in']) && $_SESSION['login']
['logged_in'])==true){
if(isset($_POST)){
if ((int)$user['authorityLevel'] > 10) {
header("location: indexAdmin.php");
$row = $user;
$_SESSION['sessionUserName'] = $row['knownAs'];
} elseif ((int)$user['authorityLevel'] = 10) {
header("location: confirmedJobs.php");
$row = $user;
$_SESSION['sessionUserName'] = $row['knownAs'];
} else ((int)$user['authorityLevel'] < 10){
header("location: loginPage.php");
}
}
}