Bardziej szukam czegoś w php, nie chce Vue wprowadzać tylko dla jednego elementu
rozumiem, że ma być coś zupełnie proste, to może po prostu tak ...
przykład
index.php
<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Tu sprawdzenie login-a i hasła z bazy danych
// dla demonstracji poniżej symulacja zalogowania
$users = ['user', 'admin'];
if (in_array($_POST['login'], $users, true)) {
$_SESSION['zalogowany_rola'] = $_POST['login'];
header('Location: content.php');
exit();
}
} else {
unset($_SESSION);
session_destroy();
}
?>
<style>
form {
margin: 2em;
}
input {
display: block;
margin: 1em 0;
}
</style>
<form action="" method="post">
<input type="text" id="login" name="login" placeholder="login" readonly />
<input type="password" id="password" name="password" placeholder="password" readonly />
<button type="submit" id="user">Login as user</button>
<button type="submit" id="admin">Login as admin</button>
</form>
<script>
const form = document.querySelector('form');
form.addEventListener('click', loginAs);
function loginAs(e) {
if (e.target.nodeName == 'BUTTON') {
form.querySelector('input#login').value = e.target.id;
form.querySelector('input#password').value = '1234';
} else {
e.preventDefault();
}
}
</script>
content.php
<?php
session_start();
if (isset($_COOKIE['PHPSESSID']) && isset($_SESSION['zalogowany_rola'])) {
$user = $_SESSION['zalogowany_rola'];
if ($user == 'admin') {
$admin_content = '<div class="admin-content">'
. 'Zawartość tylko dla administratora.'
. '</div>';
} else {
$admin_content = '';
}
} else {
$user = $admin_content = '';
}
?>
<style>
div, a {
margin: 1em;
}
.admin-content {
color: red;
}
</style>
<div>Zalogowany: <?php echo $user; ?></div>
<?php echo $admin_content; ?>
<a href="index.php">zaloguj ponownie</a>
inna wersja content.php
<?php
session_start();
$user = '';
$admin_content = false;
if (isset($_COOKIE['PHPSESSID']) && isset($_SESSION['zalogowany_rola'])) {
$user = $_SESSION['zalogowany_rola'];
if ($user == 'admin') {
$admin_content = true;
} else {
$admin_content = false;
}
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8" />
<style>
div, a, p {
margin: 1em;
}
div p {
margin: 0;
}
div span {
font-weight: bold;
}
.admin-content {
color: red;
}
.admin-footer {
font: 900 0.8em/1.1 monospace;
margin: 2em 0 0 1em;
}
</style>
</head>
<body>
<div>Zalogowany: <span><?php echo $user; ?></span></div>
<p>Lorem ipsum ...</p>
<?php if ($admin_content): ?>
<div class="admin-content">
<p>Zawartość tylko dla administratora.</p>
<p>Więcej dla administratora</p>
</div>
<?php endif; ?>
<div>Lorem ipsum ...</div>
<a href="index.php">zaloguj ponownie</a>
<?php if ($admin_content): ?>
<div class="admin-footer">
Kolejna zawartość tylko dla administratora
</div>
<?php endif; ?>
</body>
</html>