У меня проблемы с моим логином PHP. Я использую карты начальной загрузки 4, класс предупреждений всегда отображается, даже если я его скрываю ..
Когда я отправляю свою форму, есть проверка: совпадают ли адрес электронной почты и пароль? Существует ли электронная почта в базе данных и т. Д.
Если одна из проверок не пройдена, пользователь не авторизуется, и в php будет сохранена ошибка: $ error = 1;
Проблема в том, что предупреждение всегда отображается, даже если форма еще не отправлена, что хорошо при сбое входа в систему.
Вот моя Форма входа с оповещениями
Вот мой код Bootstrap 4 с php:
<div class="alert alert-danger <?php if(!isset($error)) echo 'hide';?>">
Invalid username/password! Email administrator in link below to recover it.
</div>
<div class="alert alert-warning <?php if(!isset($inactive)) echo 'hide';?>">
This account is no longer valid. Thank you!
</div>
<div style="display:none" id="login-alert" class="alert alert-danger col-sm-12"></div>
Вот мой код входа в PHP:
<?php
include('connection.php');
if (isset($_POST['proceed'])) {
$username = $_POST['login'];
$password = $_POST['password'];
/***** GUIDANCE *****/
$guidance = "SELECT * FROM faculty WHERE Faculty_ID = ? AND Password = ? AND Position='Guidance' ";
$stmt = $conn->prepare($guidance);
$stmt->bind_param('is', $username, $password);
$stmt->execute();
$result = $stmt->get_result();
$student = "SELECT * FROM student WHERE Student_ID = ? AND Password = ? ";
$stmt = $conn->prepare($student);
$stmt->bind_param('is', $username, $password);
$stmt->execute();
$result2 = $stmt->get_result();
if ($result -> num_rows > 0) {
$row = $result -> fetch_object();
if($row->Status!='Active'){
$inactive = 1;
}else{
$_SESSION['access'] = 1;
$_SESSION['login'] = $row -> Faculty_ID;
$_SESSION['Faculty_Firstname'] = $row -> Faculty_Firstname;
header('Location: guidance/index.php');
}
elseif ($result2 -> num_rows > 0) {
$row = $result2 -> fetch_object();
$_SESSION['access'] = 3;
$_SESSION['Student_ID'] = $row -> Student_ID;
//$_SESSION[] = $row ->
header('Location:student/index.php ');
}else{
$error = 1;
}
}
?>
Я думаю, что класс show или hide не работает с вашим div, где вы устанавливаете класс alert и alert-danger. Даже я просто скрываю вручную без php-кода, он не скрывает элемент div. Таким образом, может быть другой способ скрыть div. Этот трюк может работать с Bootstrap3.
Попробуйте использовать d-none
вместо того, чтобы скрыть, и вы можете получить ожидаемый результат.
Ваше оповещение должно быть скрыто в начале, и оно также должно быть отклонено, я советую вам использовать javascript, поэтому в соответствии с вашим документом
<div class="alert alert-warning alert-dismissible fade hide" role="alert"> <strong>Holy guacamole!</strong> You should check in on some of those fields below. <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div>
Я предполагаю, что вы используете загрузчик 4.1, вот доктор.
чтобы лучше понять класс спрятать / показать попробуйте это ручка и изменить «скрывать«класс с»шоу» учебный класс