Скрыть элементы, когда утверждение верно

У меня есть этот код для скрытия элементов, но первая часть это скрыть, а вторая часть показывает всегда, неважно, если я войду как пользователь или администратор. Я не понимаю, что там не так …

Я хочу, чтобы при входе в систему как пользователь отображал первый выпадающий контент, а при входе в систему как администратор отображал второй выпадающий контент, но при входе в систему как пользователь или администратор отображал только второй выпадающий контент.

Код:

<?php
if($parola == $data['parola'] && $data['admin'] == '0'){?>
<div class="dropdown">
<button class="dropbtn"><?php echo $_SESSION['mail']; ?></button>
<div class="dropdown-content">
<a href="adauga.php">Adauga anunt</a>
<a href="anunturi.php">Anunturile mele</a>
<a href="edit.php">Editeaza profil</a>
<a href="logout.php">Delogeaza-te</a>
</div>
</div>
<?php } else { ?>
<div class="dropdown">
<button class="dropbtn"><?php echo $_SESSION['mail']; ?></button>
<div class="dropdown-content">
<a href="/admin/index.php">Control Panel</a>
<a href="logout.php">Delogeaza-te</a>
</div>
</div>
<?php } ?>

0

Решение

Попробуйте следующий код, чтобы увидеть, работает ли это для вас.

Если это не работает, дайте мне знать, какую ошибку вы получите.

<?php
require 'config.php';

if (isset($_POST['login'])) {

$errMsg = '';
// Get data from FORM
$mail = $_POST['mail'];
$parola = $_POST['parola'];
if ($mail == '') {
$errMsg = 'Introduceti adresa de mail.';
} else if ($parola == '') {
$errMsg = 'Introduceti parola.';
} else {
if ($errMsg == '') {
try {
$stmt = $connect->prepare("SELECT mail, parola, admin, banned FROM acc_table WHERE mail = :mail");
$stmt->bindParam(':mail', $var_mail);
$var_mail = $_POST['mail'];
$stmt->execute();
if ($data = $stmt->fetch()) {
if ($parola == $data['parola'] and $data['admin'] == '0') {
$_SESSION['mail'] = $data['mail'];
$_SESSION['parola'] = $data['parola'];
$_SESSION['admin'] = $data['admin'];
header('Location: profile.php');
exit;
} else if ($parola == $data['parola'] && $data['admin'] == '1') {
$_SESSION['mail'] = $data['mail'];
$_SESSION['parola'] = $data['parola'];
$_SESSION['admin'] = $data['admin'];
header('Location: ../admin/index.php');
exit;
} else if ($parola == $data['parola'] && $data['banned'] == '1') {
$_SESSION['mail'] = $data['mail'];
$_SESSION['parola'] = $data['parola'];
$_SESSION['banned'] = $data['banned'];
header('Location: ban.html');
exit;
} else {
$errMsg = 'Parola nu este buna.';
}
} else {
$errMsg = "Contul asociat cu mail-ul ".$var_mail." nu a fost gasit.";
}
}
catch(PDOException $e) {
$errMsg = $e->getMessage();
}
}
}
}
0

Другие решения

Поставьте условие if следующим образом:

if($data['admin'] === '0'){
//The rest code runs here
}

Дайте мне знать, если это работает или нет.

0

Я получил решение для моей проблемы.

Он не работал с перенаправлением заголовка, но работал с JavaScript.
Я использую, чтобы заставить пользователя остаться на странице с:

<?php
if(['admin'] == '1')?>
<script>
window.location = 'admin/index.php';
</script>
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector