Я создаю форму входа для локального приложения, эта форма входа будет сначала проходить проверку подлинности на сервере LDAP (имя пользователя и pwd), а затем в локальной базе данных mySQL, чтобы проверить, зарегистрирован ли пользователь (имя пользователя указано) в базе данных.и имеет доступ к этому локальному приложению).
Я уже выяснил код для LDAP, а также запрос php, чтобы проверить, существует ли пользователь в БД, проблема в том, что я не понимаю, какчтобы правильно записать в php-файл случаи для управления ими:
- Пользователь проходит LDAP и существует в БД -> Отправить пользователя на главный сайт приложения.
- Пользователь передает LDAP, но нев БД -> Отправить сообщение о том, что у пользователя нет доступа к приложению.
- Учетные данные не работают на стороне LDAP.
внешний веб-сайт HTML "index.html"
<form action="query.php" method="post">
<div>
<label for="username"><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="username" required>
<label for="password"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="password" required>
<button type="submit">Login</button>
</div>
</form>
php файл для управления LDAP, а затем запрос MySQL" query.php "
<?php
$servername = "app.server.com";
$username = "root";
$password = "something";
$dbname = "app_calendar";
$error = false;
// check LDAP for username and pwd provided
$ldap = ldap_connect("ldap.server.com");
if (@$bind = ldap_bind($ldap, "ls\\".$_POST['username'], $_POST['password']))
{
//SQL part to check if user is on app DB
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT name, mail FROM ms_resources.users WHERE laptop = '".$_POST['username']."' LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$result2='<div class="alert alert-success alert-dismissible fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>User logged in!</strong> Welcome '. $row["name"]. '</div>';
$error = true;
}
}
else
{
$result2='<div class="alert alert-danger alert-dismissible fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>Error!</strong> No access granted for user: '.$_POST['username'].'</div>';
}
$conn->close();
}
else
{
$result2='<div class="alert alert-danger alert-dismissible fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>Error! </strong>Invalid credentials!</div>';
}
<div class="container">
<div>
<?php echo $result2; ?>
</div>
</div>
</body>
</html>
Я использую эту последнюю часть:
<div class="container">
<div>
<?php echo $result2; ?>
</div>
</div>
Для отправкиошибка при загрузке, но после этого не знаю, как перенаправить в правильные случаи, я буду признателен за любойпосоветуйте