Galera, estou querendo ajuda para fazer o seguinte;
Tenho na barra de menus o menu Home, Publicações, Curiosidades e Sobre,
so que eu tenho uma pagina onde eu administro as pubicacoes, e gostaria que essa opção de menu so aparecesse para mim. Para as demais pessoas esse menu nao aparecereia.
Estou usando PHP e HTML com xampp. Como se faz isso ?
O que eu faria é registrar um item na sessão que identificasse se o usuário tem permissão (é admin) ou não. Daí caso fosse, essa opção apareceria pra ele.
Tipo assim:
<meumenu>
Home
Curiosidades
<?php
if ($_SESSION['isAdmin'])
echo '<a href="pagina-administracao">Administrar publicações</a>'
?>
</meumenu>
No caso eu colocaria uma opção tipo “entrar”, e fazendo login acrescentaria no menu a opção administrativo ???
Entendi mas agora como seria o código para acrescentar esse item ao menu ?
Tenho um navbar no arquivo header.php onde coloquei a
l com as -
A pergunta é: como acrescentar mais um
- e como retira-la quando fizer log off e voltar para home ?
Seria exatamente o código que eu mostrei como exemplo:
<meumenu>
Home
Curiosidades
<?php
if (isset($_SESSION['isAdmin']) && $_SESSION['isAdmin'])//se 'isAdmin' existe e for igual true...
echo '<a href="pagina-administracao">Administrar publicações</a>'
//...ele imprime a opcão na tela, que é um link que redireciona o usuario para a pagina de administração
?>
</meumenu>
Seguindo essa lógica você não vai precisar fazer isso. Basta usar o unset() (praticamente um delete) em $_SESSION[‘isAdmin’] quando o usuário fizer log-off e criar esse mesmo índice quando o usuário fizer log-on no sistema.
Leia isso: https://www.php.net/manual/pt_BR/session.examples.basic.php
Coloquei a condição antes da propria tag <li> </li>
e deu certo
Boa. Uma outra coisa que você pode implementar para aumentar a segurança dessa sua página é colocar esse código no topo dela:
<?php
session_start();
if (isset($_SESSION['isAdmin']) && $_SESSION['isAdmin'])
header('Location: Home.php');//redireciona o usuario, modificando o cabeçalho Location
?>
Se o usuário tentar acessar a página pela url no navegador e não for um Admin, ele vai ser barrado por esse sisteminha e vai ser redirecionado pra pagina ‘Home.php’, ou seja lá qual for a pagina principal do site
Agora me surgiu uma outra dúvida importante. Veja bem, estou tentando fazer algo tipo um blog, onde eu tenha meus posts ali. Ocorre que olhando esse tipo de pagina, nenhuma delas tem um Botao para fazer login ou coisa assim. Fiquei me perguntando como os caras fazem para administrar as postagens.
Como isso é feito sem que apareça no site ???
É basicamente um sistema de admin.
Cada usuário de um blog deve ter a sua conta, certo? Os dados que identificam o usuário como um admin são armazenados no banco de dados e recuperados no sistema de login. Ou seja: quando o usuário entrar na conta dele, nós já conseguimos saber se ele é admin ou não e conseguimos fazer o que quisermos com essa informação
Bem, eu acho que não. Eu posso entrar num blog e ver as notícias sem precisar ter uma conta. Veja por exemplo esse blog de notícias : https://luiscardoso.com.br/
Você simplesmente entra na página e sem a necessidade de fazer login tem acesso a todas as notícias.
Essa é a minha dúvida: como o cara administra as notícias? Como ele acessa o módulo administrativo já que aí não existe nenhum botão, link ou coisa assim ?